我在facebook的SDK文档上遇到了困难.我从Github下载了SDK并将其添加到我的PHP项目中.
这是文件系统:
??? Facebook
? ??? FacebookAuthorizationException.php
? ??? FacebookCanvasLoginHelper.php
? ??? FacebookClientException.php
? ??? FacebookJavaScriptLoginHelper.php
? ??? FacebookOtherException.php
? ??? FacebookPermissionException.php
? ??? FacebookRedirectLoginHelper.php
? ??? FacebookRequest.php
? ??? FacebookRequestException.php
? ??? FacebookResponse.php
? ??? FacebookSDKException.php
? ??? FacebookServerException.php
? ??? FacebookSession.php
? ??? FacebookThrottleException.php
? ??? GraphLocation.php
? ??? GraphObject.php
? ??? GraphSessionInfo.php
? ??? GraphUser.php
? ??? fb_ca_chain_bundle.crt
??? test.php
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码:
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
FacebookSession::setDefaultApplication('*******','******');
$helper = new FacebookRedirectLoginHelper('http://isgeek.eu/fb/FaRepost/return.php');
$loginUrl = $helper->getLoginUrl(); …Run Code Online (Sandbox Code Playgroud) 我想给我的所有网站作者一个可能性,在我们的Facebook页面上发布他们的文章,而不必给他们管理员访问它.
所以我创建了一个简单的表单,作者输入:URL,URL到图像,消息
提交时,此表单将向facebook.php发送一个ajax请求,其中魔术"应该"发生.
第一个问题发生在"require_once".没有错误就不可能要求所有4个文件.如果我摆脱了facebook异常,那么除了请求本身之外,一切都有效.似乎有一个PHP错误,因为我根本没有得到ajax响应.
session_start();
require_once($_SERVER['DOCUMENT_ROOT'].'/sys/facebook/FacebookSession.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/sys/facebook/FacebookRequest.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/sys/facebook/GraphObject.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/sys/facebook/FacebookRequestException.php');
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphObject;
use Facebook\FacebookRequestException;
$message = safe($_POST["message"]);
$url = safe($_POST["url"]);
$image = safe($_POST["image"]);
if($message == "" OR $url == "" OR $image == ""){
echo "incomplete";
return;
}
FacebookSession::setDefaultApplication('{APP ID}','{APP SECRET}');
$session = new FacebookSession('{Page Access Token}');
if($session) {
try {
$response = (new FacebookRequest(
$session, 'POST', '/{Page ID}/feed', array(
'message' => $message,
'link' => $url,
'picture' => $image
)
))->execute()->getGraphObject();
echo "Posted with id: " . …Run Code Online (Sandbox Code Playgroud) 这是我的代码(App id和App secret都可以):
session_start();
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' );
require_once( 'Facebook/HttpClients/FacebookCurl.php' );
require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'Facebook/HttpClients/FacebookHttpable.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\FacebookHttpable;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookCurl;
FacebookSession::setDefaultApplication('App_id', 'App_secret');
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
致命错误:第33行的/home/superwed/public_html/HS/Facebook/HttpClients/FacebookCurlHttpClient.php中找不到界面'Facebook\HttpClients\FacebookHttpable'
这是非常奇怪的,因为我检查过的所有地方都定义好了.
我失去了我的晚上,我觉得我需要其他人来检查这个,我可能完全失明了.
define('FACEBOOK_SDK_V4_SRC_DIR', '/var/www/rateanything/facebook-sdk/src/Facebook');
require('/var/www/rateanything/facebook-sdk/autoload.php');
use Facebook;
FacebookSession::setDefaultApplication('my_app_id', 'my_app_secret');
$session = new FacebookSession($fbtoken);
$request = new FacebookRequest($session,'GET','/me?fields=email,name,gender');
Run Code Online (Sandbox Code Playgroud)
为什么这不重复:因为那个问题没有这个错误.我收到了这个解析错误.
我正在使用PHP 5.4.