我正在创建一项服务,其目的是下载Facebook页面的公共内容,但我遇到了Facebook OAuth,应用程序和所有内容的问题(为什么地狱facebook太复杂了?)
好吧,我在Facebook上创建了一个应用程序,它在线并且活跃。之后,我从https://github.com/facebook/facebook-php-sdk-v4下载了Facebook SDK,此时我正在尝试在我的服务器上运行的应用程序与Facebook之间建立有效的连接。
这是我正在使用的功能和要求:
session_start();
require_once( 'Facebook/FacebookCurl.php');
require_once( 'Facebook/FacebookHttpable.php');
require_once( 'Facebook/FacebookCurlHttpClient.php');
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php');
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookCurl;
use Facebook\FacebookHttpable;
use Facebook\FacebookCurlHttpClient;
use FacebookAuthorizationException.php;
function consumeFacebook(){
FacebookSession::setDefaultApplication('my FBapp ID','my FBapp Secret');
$session = new FacebookSession('myToken from the Facebook Application');
$request = new FacebookRequest(
$session,
'/19292868552/posts',
'GET'
);
$response = $request->execute();
var_dump($request);
}
我得到的错误如下:
Fatal error: Uncaught exception 'Facebook\FacebookAuthorizationException' with message 'Invalid OAuth access token.' in C:\xampp\htdocs\dd-consumer\Facebook\FacebookRequestException.php:104 Stack trace: #0 C:\xampp\htdocs\dd-consumer\Facebook\FacebookRequest.php(254): Facebook\FacebookRequestException::create('{"error":{"mess...', Object(stdClass), 400) #1 C:\xampp\htdocs\dd-consumer\index.php(63): Facebook\FacebookRequest->execute() #2 C:\xampp\htdocs\dd-consumer\index.php(71): consumeFacebook() #3 {main} thrown in C:\xampp\htdocs\dd-consumer\Facebook\FacebookRequestException.php on line 104
有没有人有任何建议?任何解决方法甚至更简单的方法来完成我需要的东西,而无需使用FB SDK?
感谢。
答案 0 :(得分:0)
您可以使用App Access Token进行此类API调用。最简单的方法是使用app_id和secret。
然后你可以尝试这样的事情:
// create a session using app_access_token
$session = new FacebookSession( '{app_id}|{app_secret}' );
// see if we have a session
if ( isset( $session ) ) {
// graph api request for public post data
$response = (new FacebookRequest( $session, 'GET', '/19292868552/posts') )->execute()->getGraphObject()->asArray();
// print data
echo '<pre>' . print_r( $response, 1 ) . '</pre>';
} else {
// some error
}