Javascript 如何轻松使用Facebook API实时更新功能?
首先,为在Facebook实时更新上发布另一个问题表示歉意。我已经阅读了许多已有的答案和有用的文章,这些都很有帮助,但我似乎仍然不知道如何把所有的东西放在一起 我所要做的就是在有用户或页面实时更新(无论是状态/评论/喜欢/等等)时触发 我从开始写这两篇博文,发现这两篇博文很方便:Javascript 如何轻松使用Facebook API实时更新功能?,javascript,php,facebook,facebook-graph-api,Javascript,Php,Facebook,Facebook Graph Api,首先,为在Facebook实时更新上发布另一个问题表示歉意。我已经阅读了许多已有的答案和有用的文章,这些都很有帮助,但我似乎仍然不知道如何把所有的东西放在一起 我所要做的就是在有用户或页面实时更新(无论是状态/评论/喜欢/等等)时触发 我从开始写这两篇博文,发现这两篇博文很方便: 据我所知,要注册实时更新,我需要: 创建一个WWW-Facebook应用程序 将Facebook应用程序指向回调\u url 在callback\uURL中添加一个php脚本,在Facebook调用时处理GET
回调\u url
callback\uURL
中添加一个php脚本,在Facebook调用时处理GET请求(用于验证)和POST请求v2.3/APP\u ID/subscriptions
)回调url
我想我已经成功注册了回调。这里大概是我得到的输出(用MY\u CB\u URL
替换实际的URL):
回调php脚本如下所示:
<?php
define('VERIFY_TOKEN', 'vToken');
$method = $_SERVER['REQUEST_METHOD'];
if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' && $_GET['hub_verify_token'] == VERIFY_TOKEN) {
echo $_GET['hub_challenge'];
} else if ($method == 'POST') {
$out = "";
try {
$updates = json_decode(file_get_contents("php://input"), true);
$out = print_r($updates, true);
error_log('updates = ' . $out);
} catch (Exception $e) {
error_log('Caught exception: '.$e->getMessage());
$out = $e->getMessage();
}
$file = './log.txt';
$current = file_get_contents($file);
$current .= $out;
file_put_contents($file, $current);
}
?>
得到的回答是:
{
"data": [
{
"id": "PAGE_ID/tabs/likes",
"name": "Likes",
"link": "https://www.facebook.com/pages/PAGE_NAME/PAGE_ID?sk=likes",
"is_permanent": true,
"position": 2,
"is_non_connection_landing_tab": false
},
{
"id": "PAGE_ID/tabs/photos",
"image_url": "https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-xaf1/t39.2080-0/851586_10151609549247733_1069686154_n.gif",
"name": "Photos",
"link": "https://www.facebook.com/pages/PAGE_NAME/PAGE_ID?sk=photos",
"application": {
"name": "Photos",
"id": "PHOTO_ID"
},
"is_permanent": false,
"position": 1,
"is_non_connection_landing_tab": false
}
]
}
所以现在我更困惑了。向
https://graph.facebook.com/PAGE_ID/tabs
已过时–您需要立即使用/PAGE\u ID/subscribed\u apps
从页面订阅更新
至少根据图形API,我可以看到应用程序被链接:```{“数据”:[{“名称”:“应用程序名称”,“id”:“应用程序id”}]}``但我仍然没有得到任何更新。我试着在我的账户和facebook页面上发帖,但没有发现问题:url是文件夹的路径,因为我的脚本名为index.php。路径应该是显式的(包括指向.php的路径,而不仅仅是文件夹)
https://graph.facebook.com/PAGE_ID/tabs?app_id=APP_ID&access_token=PAGE_ACCESS_TOKEN
{
"data": [
{
"id": "PAGE_ID/tabs/likes",
"name": "Likes",
"link": "https://www.facebook.com/pages/PAGE_NAME/PAGE_ID?sk=likes",
"is_permanent": true,
"position": 2,
"is_non_connection_landing_tab": false
},
{
"id": "PAGE_ID/tabs/photos",
"image_url": "https://fbcdn-photos-c-a.akamaihd.net/hphotos-ak-xaf1/t39.2080-0/851586_10151609549247733_1069686154_n.gif",
"name": "Photos",
"link": "https://www.facebook.com/pages/PAGE_NAME/PAGE_ID?sk=photos",
"application": {
"name": "Photos",
"id": "PHOTO_ID"
},
"is_permanent": false,
"position": 1,
"is_non_connection_landing_tab": false
}
]
}