【发布时间】:2015-03-21 14:34:58
【问题描述】:
我正在尝试制作一个 php 脚本,该脚本接收来自 Facebook 应用程序的 ajax 调用,以检查用户发送的 id 是否是他自己的。我在下一段代码中获得了用户 ID 和访问令牌。函数 validateMe() 将 id、作为分隔符的字母 z 和访问令牌放在一起,然后进行 ajax 调用
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
monLogin.uid=response.authResponse.userID;
monLogin.token=response.authResponse.accessToken;
validateMe();
}
}
接下来是接收 ajax 调用的 php 脚本。当行 $response=request->execute(); 时,它返回到状态为 500 的 ajax 调用;没有评论。当我通过注释它来停止该行之前的代码时,它会返回到状态为 200 的 ajax 调用。所以,我相信有些东西使该行无法按预期工作。在某些示例中,我尝试将名称 $faceb 更改为 $session,但事实并非如此。使用 Facebook = new Facebook(array) 对象而不是方法 setDefaultApplication 也不能解决问题,因为 Facebook 对象已被弃用。
<?php
session_start();
include 'vendor/autoload.php';
use Facebook\FacebookSession;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
if (isset($GLOBALS['HTTP_RAW_POST_DATA'])){
$appid='123456'; //not the true appid
$psswd='123456abcdef'; //not the true password
FacebookSession::setDefaultApplication($appid, $psswd);
$infosJoueur = $GLOBALS['HTTP_RAW_POST_DATA'];
$arrayData = explode('z', $infosJoueur, 2);
// arrayData[1] is the accessToken from the javascript
$session = new FacebookSession($arrayData[1]);
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
/*$graph = $response->getGraphObject(GraphUser::className());
$id = $graph->getId();
if (($arryData[0] = $id)) {
echo 'yes';
$_SESSION['uid']=$id;
}
else {echo 'no';}*/
}
?>
按照 cmets 中的建议,我检查了服务器的日志,发现 mbstring 方法不存在,因为我必须将其添加到 composer.json 文件中。在要求中,我添加了“ext-mbstring”:“*”。我仍然收到错误 500 的不同日志:
PHP 致命错误:未捕获的异常 'Facebook\FacebookAuthorizationException' 带有消息“无法解密访问令牌”
【问题讨论】:
-
Facebook 会返回 500,还是您的服务器会返回?
-
ajax响应中的状态为500
-
错误日志中有什么内容?
-
哎呀抱歉,这个在日志中更远。它必须来自那个:Call to undefined function Facebook\HttpClients\mb_substr() in /app/vendor/facebook/php-sdk-v4/src/Facebook/HttpClients/FacebookCurlHttpClient.php on line 254
标签: php facebook facebook-php-sdk