我正在尝试使用 PHP SDK 从 Facebook 页面提取最新状态,然后通过 cron 作业将其作为帖子插入我的网站,但似乎卡在访问 token 部分。这是我到目前为止所拥有的:
require 'facebook-php-sdk-master/src/facebook.php';
require 'wp-load.php';
// I replaced these obviously
$facebook = new Facebook(array(
'appId' => FB_APP_ID,
'secret' => FB_SECRET,
));
try {
$feed = $facebook->api('/322522705880/feed?limit=1');
} catch (FacebookApiException $e) {
error_log($e);
}
然后我使用 $feed['data'][0]['description'] 等来创建帖子。然而,我唯一能让 $feed 获取任何数据的时候是当我重新安装 Facebook Wordpress 插件时,该插件必须以某种方式激活访问 token ,因为它会工作几个小时,然后停止。我在任何地方都找不到任何关于如何从脚本生成我自己的脚本的信息,https://developers.facebook.com/docs/reference/php/facebook-getAccessToken/并没有真正提供任何有用的信息。如果有人能指出我正确的方向,那就太好了。 wordpress 插件正在以某种方式执行此操作,我只需要知道如何复制它。
我在插件中进行了一些探索,发现了这个
$token = false;
if (!$token) {
// Get temporary token
$token = $this->model->fb->getAccessToken();
if (!$token) return false;
// Exchange it for the actual long-term token
$url = "https://graph.facebook.com/oauth/access_token?client_id={$app_id}&client_secret={$app_secret}&grant_type=fb_exchange_token&fb_exchange_token={$token}";
$page = wp_remote_get($url, array(
'method' => 'GET',
'timeout' => '5',
'redirection' => '5',
'user-agent' => 'wdfb',
'blocking' => true,
'compress' => false,
'decompress' => true,
'sslverify' => false
));
if(is_wp_error($page)) return false; // Request fail
if ((int)$page['response']['code'] != 200) return false; // Request fail
parse_str($page['body'], $response);
$token = isset($response['access_token']) ? $response['access_token'] : false;
if (!$token) return false;
}
但这给了我“未指定用户访问 token ”,并且我不确定如何使用或获取用户访问 token ?
最佳答案
为此,您所需要的只是一个应用程序 token 。您可以使用 app_id 和 app_secret“构建”应用程序访问 token :
access_token=APP_ID|APP_SECRET
这是两个值之间的管道字符 |
。
一旦有了这个,您就可以像这样向端点发出请求:
https://graph.facebook.com/cocacola/feed?limit=1&access_token=APP_ID|APP_SECRET
响应将是这样的:
{
"data": [
{
"id": "40796308305_10152854866613306",
"from": {
"name": "Verone Diedericks",
"id": "100003842548992"
},
"to": {
"data": [
{
"category": "Food/beverages",
"name": "Coca-Cola",
"id": "40796308305"
}
]
},
"message": "Vony nd kimo or just vony",
"privacy": {
"value": ""
},
"type": "status",
"created_time": "2013-11-26T20:13:11+0000",
"updated_time": "2013-11-26T20:13:11+0000"
}
],
"paging": {
"previous": "https://graph.facebook.com/40796308305/feed?limit=1&access_token=163586277060593|Rtsz7h6IiHu7Uva9D5S4VW0FKu8&since=1385496791&__previous=1",
"next": "https://graph.facebook.com/40796308305/feed?limit=1&access_token=163586277060593|Rtsz7h6IiHu7Uva9D5S4VW0FKu8&until=1385496790"
}
}
关于facebook - 尝试使用 cron 通过 Facebook PHP SDK 获取最新页面状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20164663/