在我的PHP應用程序中,用戶提供自己的Facebook應用程序ID和應用程序密鑰。我需要驗證它們,並顯示錯誤,如果它們是無效的。使用Facebook進行匿名呼叫PHP SDK
我已經找到了一個很好的方法來做到這一點。我能爲https://graph.facebook.com/oauth/access_token?client_id=123456&client_secret=abcdefg&grant_type=client_credentials
的請求。如果憑證無效,響應如下:
{
"error": {
"message": "Error validating application. Cannot get application info due to a system error.",
"type": "OAuthException",
"code": 101,
"fbtrace_id": "D8oHjJoc2Nc"
}
}
我感到困惑與PHP SDK做到這一點的方式。有一個整潔的get()
方法來提出這樣的請求,但我不確定如何發送請求而不授權應用程序。這是我做過什麼:
$app = new Facebook\FacebookApp($app_id, $app_secret);
$access_token = $app->getAccessToken();
$query = http_build_query([
'client_id' => $app_id,
'client_secret' => $app_secret,
'grant_type' => 'client_credentials',
]);
$facebook = new Facebook\Facebook([
'app_id' => $app_id,
'app_secret' => $app_secret,
'default_graph_version' => '2.5',
]);
$response = $facebook->get('/oauth/access_token?' . $query, $access_token);
,我發現了以下錯誤:
Unknown path components: /oauth/access_token
但即使它的工作,它的奇特與任意一個發送者憑據來調用它。是否可以使用PHP SDK創建「匿名」Facebook請求?
據我所知,這是不可能的。您需要授權的應用才能提出請求。 – Stavros
應用程序ID和應用程序祕密與中間的管道符號的組合可以用作應用程序訪問令牌 - 因此您可以構建該應用程序,然後[debug](https://developers.facebook.com/docs/facebook -login/access-tokens/debug-and-error-handling#debug)來檢查它是否是有效的訪問令牌。或者只需使用該令牌進行簡單的API請求,並查看您得到的響應。 – CBroe
@CBroe,你能否進一步解釋你的意思是「app-id,app-secret?這樣的組合:app-id?app-secret? – Stavros