使用图表API检查Facebook页面是否已发布或未发布的可靠方法是什么?我目前这样做:
http://graph.facebook.com/ {PAGE_ID}
并检查返回值是否为“false”。如果它是假的,我得出结论它是未发布的,如果它返回一个图形对象,则得出结论它已发布。但我现在注意到,许多已发布的页面都会从上述请求中返回“false”。
以下是一个例子:
此页面已发布:http://www.facebook.com/AjiRestaurant
但这些请求返回false: http://graph.facebook.com/104433516257517(使用页面ID) http://graph.facebook.com/AjiRestaurant(使用页面用户名)
检查网页是否已发布的最佳方式是什么?
答案 0 :(得分:3)
在http://developers.facebook.com/tools/explorer
上的FQL查询下打孔SELECT page_id, name, username, is_published
FROM page
WHERE page_id IN
(SELECT page_id FROM page_admin WHERE uid = me())
AND is_published=""
ORDER BY fan_count DESC
这将选择您帐户中的所有页面并检查它们是否已发布,并将所有未发布的页面返回到列表中。
答案 1 :(得分:2)
事实证明,没有已知方法可以具体检查页面是否已发布/未发布。如果满足以下任何条件,则图形API http://graph.facebook.com/ {page_id}将返回false:
当且仅当上述设置均不适用时,http://graph.facebook.com/ {page_id}将返回对象图。
注意:我假设上面的API调用没有使用具有manage_pages权限的访问令牌。使用适当的访问令牌,https://graph.facebook.com/ {page_id}将返回对象图,无论Page是否有限制。
答案 2 :(得分:0)
您可以使用以下内容,但在页面上拥有manage_pages权限时,它可以正常运行
http://graph.facebook.com/{page_id}/settings
使用manage_pages权限
尝试此代码FB.api('/me/accounts', function (resp) {
//var txtpageid =
if (txtpageid != '') {
FBactualID = '';
for (var i = 0, l = resp.data.length; i < l; i++) {
var page = resp.data[i];
if (page.id == txtpageid) {
FBactualID = txtpageid;
varFBResponseFlag = true;
//alert('inside the page id validation');
}
}
}
getCheckedValue(FBactualID);
});
答案 3 :(得分:0)
使用图谱API获取页面(使用cURL
作为系统调用,HTTPClient
使用Rails,或$.getJSON()
使用jQuery,例如)http://graph.facebook.com/PAGE_ID。未发布的页面将返回false
,已发布的页面将返回JSON数组信息。
这不需要任何访问权限或权限。
使用cURL(命令行)
$ curl http://graph.facebook.com/UNPUBLISHED_PAGE_ID
false
$ curl http://graph.facebook.com/PAGE_ID
{"id":"1234","name":"Test Page","picture":....
使用HTTPClient(使用Rails)
HTTPClient.get("http://graph.facebook.com/UNPUBLISHED_PAGE_ID").body
# false
HTTPClient.get("http://graph.facebook.com/PAGE_ID").body
# "{\"id\":\"1234\",\"name\":\"Test Page\",\"picture\"....
使用$ .getJSON()(jQuery)
$.getJSON("http://graph.facebook.com/UNPUBLISHED_PAGE_ID", function (data) {
console.log(data); // false
}
$.getJSON("http://graph.facebook.com/PAGE_ID", function (data) {
console.log(data); // JSON Object with page info
}
答案 4 :(得分:0)
如果您使用可以在请求中查看该页面的access_token
,您将只能看到该页面。
您将始终只能看到在Facebook上使用access_token
用户看到的页面。
例如,在上面的示例中使用我自己的access_token
仍会为AjiRestaurant提供false
,但我将获得KeystoneLight的信息,因为我的帐户符合限制条件。