【发布时间】:2014-11-07 15:40:56
【问题描述】:
直到昨天我才尝试制作一个自动发布在 facebook 页面上的脚本。
1 - 我想获得每 1 小时过期的“用户令牌应用程序”。我试过 curl,file_get_content....
使用新的 SDK 你只有 3 个选择 Session by redirect、canvas 或 javascript...
查看我对“令牌应用程序”的最后一次尝试
<?php
require_once( 'Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'Facebook/HttpClients/FacebookCurl.php' );
require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'Facebook/FacebookSignedRequestFromInputHelper.php' );
require_once( 'Facebook/Entities/AccessToken.php' );
require_once( 'Facebook/Entities/SignedRequest.php' );
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookCanvasLoginHelper.php' );
require_once( 'Facebook/FacebookJavaScriptLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookServerException.php' );
require_once( 'Facebook/FacebookOtherException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphSessionInfo.php' );
require_once( 'Facebook/FacebookPermissionException.php' );
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\FacebookSignedRequestFromInputHelper;
use Facebook\Entities\AccessToken;
use Facebook\Entities\SignedRequest;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookCanvasLoginHelper;
use Facebook\FacebookJavaScriptLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookServerException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
use Facebook\FacebookPermissionException;
session_start();
class RedditFacebook
{
protected static $app_id;
protected static $app_secret;
protected static $page_id;
protected static $redirect_uri;
protected static $app_token;
protected static $redirect_url;
function __construct()
{
$this->app_id = "68183546459998";
$this->app_secret = "9270dbghfgh45654c10a799be9f35497";
$this->page_id = "doyouwatch";
$this->redirect_uri = "http://dojkjhkch";
$this->redirect_url = "http://doyhjkhjtch/librarihjkes/redhkjdit-facebook.php";
$this->app_token = "fghfghfghfgh654|5fgh4d6g4dfg";
$this->shareToFacebook();
}
private function getShortToken($session)
{
}
private function shareToFacebook()
{
FacebookSession::setDefaultApplication('681837726456456455242938','9270dbcertbfe2erterttcadc9c10a799be9f35497');
$session = new FacebookSession($this->app_token);
if($session) {
try {
$response = (new FacebookRequest(
$session, 'POST', '/'.$this->page_id.'/feed', array(
'message' => "message",
'link' => "http://doyou.watch",
'picture' => "http://doyou.watch"
)
))->execute()->getGraphObject();
echo "Posted with id: " . $response->getProperty('id');
} catch(FacebookRequestException $e) {
echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();
}
} else {
echo "No Session available!";
}
echo '<pre>',print_r($session, 1),'</pre>';
/*
if($session)
{
try
{
//$post_title = "Do You Watch - ".$post_title."";
$page_post = (new FacebookRequest( $session, 'POST', '/'. $this->page_id .'/feed', array(
'access_token' => $this->app_token,
//title caption
'name' => "caption_title",
'link' => "http://doyou.watch",
//message caption
'caption' => "caption_description",
//title first message
'message' => "post_title"
) ))->execute()->getGraphObject()->asArray();
//error_log("New post facebook send: ".$link."", 0);
}
catch(FacebookRequestException $e)
{
error_log("Exception occured, code:". $e->getCode()."", 0);
error_log("with message: ". $e->getMessage()."", 0);
}
}
else
{
error_log("No Session available!", 0);
}
*/
}
}
$obj = new RedditFacebook();
错误:发生异常,代码:200 带有消息:(#200) 用户尚未授权应用程序执行此操作
【问题讨论】:
-
我没有看到您在代码中的任何位置请求发布权限。
-
这是我最后一次尝试使用 app_token。