OAuthException: (#2) 未能创建任何应用请求
Posted
技术标签:
【中文标题】OAuthException: (#2) 未能创建任何应用请求【英文标题】:OAuthException: (#2) Failed to create any app request 【发布时间】:2013-03-14 09:19:35 【问题描述】:我正在使用以下代码从应用程序向用户发送请求。一切都很好,但突然停止工作,我收到一个错误:
$config = array();
$config['appId'] = $this->app_id;
$config['secret'] = $this->app_secret;
$facebook = new Facebook($config);
$url = "https://graph.facebook.com/oauth/access_token?client_id=$this->app_id&client_secret=$this->app_secret&grant_type=client_credentials";
$token = file_get_contents($url);
$request = $facebook->api('/'.$id.'/apprequests', 'POST', array(
'message' => $text,
'access_token' => $token
)
);
看起来令牌是有效的,我不知道还有哪里可能是问题。
【问题讨论】:
我没有看到你实际上在代码中的任何地方使用令牌...... 对不起,我在示例代码'access_token' => $token
(已修复)中遗漏了一行,但原始代码是可以的,错误仅在示例中出现。购买方式,我在 Graph API Explorer 中也遇到此错误。 screen
端点确实不只返回令牌,而是返回access_token=YOUR_APP_ACCESS_TOKEN
形式的字符串。所以你作为access_token
参数传递的并不是真正的访问令牌。
这就是问题所在!非常感谢!
【参考方案1】:
端点不仅返回令牌,而是返回access_token=YOUR_APP_ACCESS_TOKEN
形式的字符串。
所以你作为access_token
参数传递的并不是真正的访问令牌——你必须首先修剪access_token=
。
【讨论】:
应在上面的代码中添加以下行:$psevdo_token = file_get_contents($url); $temp = explode('=', $psevdo_token); $token = $temp[1];
【参考方案2】:
您需要一个有效的应用 access_token 才能向 API 发出请求。创建应用程序 access_token 的最简单方法是使用 app_id 和 secret。正如Facebook documentation 所说:
还有另一种调用 Graph API 的方法 需要使用生成的应用令牌。您只需传递您的应用程序 ID 和 app secret 作为调用时的 access_token 参数:
https://graph.facebook.com/endpoint?key=value&access_token=app_id|app_secret
【讨论】:
以上是关于OAuthException: (#2) 未能创建任何应用请求的主要内容,如果未能解决你的问题,请参考以下文章
OAuthException "(#210) 主题必须是一个页面。"
OAuthException 200 facebook sdk wp8
Facebook 错误:“(#100)无效参数”、“OAuthException”、“代码”:100
Facebook:OAuthException:此授权码已被使用