Salesforce的REST API,使用PHP,INVALID_SESSION_ID後,我連我的web應用到Salesforce,併成功地緊跟在Web服務器的OAuth流中的所有步驟,得到的access_token和相關信息: https://developer.salesforce.com/docs/atlas.en-us.api_placeorder.meta/api_placeorder/intro_understanding_web_server_oauth_flow.htm成功認證
似乎每走一步返回文檔中指定的預期結果集,但是當我嘗試使用最終訪問令牌發出請求時,出現錯誤,說明我的會話ID無效。這裏是我的代碼:
// Execute a request for access_token and related info
$output = json_decode(curl_exec($ch));
curl_close($ch);
var_dump($output);
// Extract token and instance_url from output
$sf_url = $output->instance_url . '/services/data/v35.0/';
$sf_auth = 'Bearer ' . $output->access_token;
// Execute a new cURL request with auth values
$ci = curl_init();
curl_setopt($ci, CURLOPT_URL, $sf_url);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ci, CURLOPT_HTTPHEADER, array(
'Accept' => '*/*',
'Authorization' => $sf_auth,
'X-PrettyPrint' => 1
));
$output2 = curl_exec($ci);
curl_close($ci);
var_dump($output2);
從$輸出轉儲給出:
object(stdClass)#194 (7) {
["access_token"]=> string(112) "xxxxxxxxxxxxxxxx"
["signature"]=> string(44) "xxxxxxxxxxxxxx"
["scope"]=> string(3) "api"
["instance_url"]=> string(27) "https://cs10.salesforce.com"
["id"]=> string(68) "https://test.salesforce.com/id/xxxxx/xxxxx"
["token_type"]=> string(6) "Bearer"
["issued_at"]=> string(13) "1453358xxxxxx" }
轉儲從$輸出2給出了:
string(75) "[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]"
這裏任何幫助將非常感激。
* UPDATE *
我也嘗試使用用戶名,密碼,驗證流程,並且我得到了相同的結果。我可以獲取訪問令牌,但我無法查詢數據庫,並且返回的錯誤與INVALID_SESSION_ID相同。
我使用郵遞員插件進行chrome傳遞所有相同的用戶名 - 密碼流信息,並且它用於進行查詢。我不確定正在做什麼不同,似乎所有傳遞的數據都是一樣的。