使用以前的图形api和facebook的SDK,我可以将单个令牌定义为
'access_token => $token'
就是这样。
但现在,有了新的SDK,我不知道该怎么做,也不知道这是否可能。
这是我的新代码(不起作用):
<?php
require_once 'autoload.php';
use Facebook'FacebookSession;
use Facebook'FacebookRedirectLoginHelper;
use Facebook'FacebookRequest;
use Facebook'FacebookResponse;
use Facebook'FacebookSDKException;
use Facebook'FacebookRequestException;
use Facebook'FacebookAuthorizationException;
use Facebook'GraphObject;
use Facebook'Entities'AccessToken;
use Facebook'HttpClients'FacebookCurlHttpClient;
use Facebook'HttpClients'FacebookHttpable;
$request = new FacebookRequest(
$session,
'POST',
'/post_id/comments',
array (
'access_token' => 'CAALXXXXXXXXXXXXXXXXXXXXXXXXXX',
'message' => 'this is a test',
)
);
?>
(当然,当我运行代码时,我会更改访问令牌和post-id的值)
这是我以前工作的代码:
<?php
require_once('dir/src/facebook.php');
$config = array(
'fileUpload' => true,
'allowSignedRequest' => false
);
$facebook = new Facebook($config);
$comment = $facebook->api('/post_id/comments', 'POST', array(
'access_token' => 'CASDASDASDASDASDASDSDSD',
'message' => 'this is a test message',
)
);
?>
显示的错误为:
可捕获的致命错误:传递到FacebookRequest::__construct()的参数1必须是Facebook''FacebookSession的实例,给定字符串,在第27行的/home//public_html/post_comment.php中调用,并在第187行的/hom/public_html/src/Facebook/FacebookRequest.php中定义
请帮助我了解如何在不需要通过facebook的新sdk登录任何应用程序的情况下使用单个令牌进行评论。
非常感谢。
首先设置一个新的Facebook应用程序,您可以在这里找到它。
按照提示保存应用程序ID和应用程序机密。
启动会话:
session_start();
FacebookSession::setDefaultApplication($app_id,$secret);
FacebookSession::enableAppSecretProof(false);
但现在你想要一个访问令牌,所以让我们请求一个(这样我们就不必每次到期都手动获取):
$session = FacebookSession::newAppSession();
$response = new FacebookRequest($session, 'GET', '/oauth/access_token?client_id='.($app_id.'&client_secret='.$secret.'&grant_type=client_credentials'))->execute();
$token = $response->getGraphObject()->asArray()['access_token'];
现在用新的$token开始一个会话,并提交一个请求:
$session = new FacebookSession($token);
$request = new FacebookRequest(
$session,
'GET',
'/'.$post_id.'/comments'
);