【发布时间】:2012-01-11 15:24:51
【问题描述】:
我正在 Facebook 中为我的应用程序创建测试用户。它有时会起作用。如果没有,则此调用会发生错误:
function getTestAccounts($fb, $a) {
$s = urlencode($a);
**$accounts = $fb->api("/{$fb->getAppId()}/accounts/test-users?access_token=$s");**
if( isset($accounts['data']) )
return $accounts;
else
return null;
}
错误是:
未捕获的 OAuthException:(#15) 必须使用应用程序 access_token 调用此方法。
之前我通过这个函数获取了token:
function getAppAccessToken($fb) {
$access_token_url = "https://graph.facebook.com/oauth/access_token";
$parameters = "grant_type=client_credentials&client_id=" . $fb->getAppId() . "&client_secret=" . $fb->getApiSecret() . "&junk=1";
return file_get_contents($access_token_url . "?" . $parameters);
}
当我输出有问题的令牌时,它看起来像这样并且不会改变(应该吗?)
access_token=229234510434203|TK2UDoGCPthCBeDIvhRIPkSG8Wk
我已尝试清除 cookie。这似乎可行,但可能与其他事情巧合,因为现在不行。
我假设从 FB 返回的访问令牌发生了变化,但它总是返回相同的。
【问题讨论】:
-
如果用户在获取文件时出错,使用 file_get_contents 会暴露您的应用程序机密。不错的大安全漏洞,你应该使用 cURL,
标签: facebook oauth access-token