鉴于公开Facebook帖子的URL,如何在FB Graph API中找到帖子对象? (其次,当通过API访问时,为什么这么多用户提要为空或几乎为空?)
我们希望能够通过v2.x发布comment on或like帖子 图谱API,给出帖子的URL。这样做需要帖子的对象 ID,我们可以做一些有根据的猜测,但访问 通过API的实际对象已被证明是不可靠的(适用于某些帖子,但是 不是其他人。)
API引入的{p> v2 app-scoped user IDs,并且通常会显示帖子ID 形式为{app-scoped user id} _ {unique post id}。这里有 一些尝试在API中查找具有各种组合的帖子的详细信息 这些ID(全局用户ID,应用程序范围的用户ID和帖子ID)。从一个简单的例子开始:https://www.facebook.com/evan.prodromou/posts/10153023417510505。关键特征是它是公开的,它不是另一个帖子的共享,最重要的是它没有照片,它为单个照片和照片集添加额外的ID和URL。 Evan的个人资料也是公开的,即https://www.facebook.com/evan.prodromou未显示通用内容此内容目前无法使用
尝试来自该网址的裸帖子ID,/v1.0/10153023417510505和/v2.2/10153023417510505都会提供不支持的获取请求(代码100)错误。
< / LI>Evan的全局用户ID为525575504.将其作为前缀附加,/v1.0/525575504_10153023417510505和/v2.2/525575504_10153023417510505仍会同时提供相同的不支持的获取请求错误。
使用他的应用范围的用户ID改为相同的错误,/v2.2/10152350676805505_10153023417510505。
好吧让我们试试另一个方向。我们将浏览用户的Feed,直到找到相关帖子。感觉这更像是API的预期的用例......
全局/v2.2/525575504/posts和应用范围/v2.2/10152350676805505/posts均未返回任何内容,但/v1.0/525575504/posts会返回两个最近发布的帖子,this like和this post。不知道为什么只有那两个,尽管最近有很多其他的公开帖子。可以通过两个api版本中的id
字段获取类似内容,即/v1.0/525575504_10153045879215505和/v2.2/10152350676805505_10153045879215505,但两个API版本在获取时都会返回 Unsupported get request 错误通过其id字段发布,例如/v1.0/525575504_351575675029953和/v2.2/10152350676805505_351575675029953
尝试其他公开发布的帖子,其中包含图片:https://www.facebook.com/andigalpern/posts/678121182314631。 /v1.0/100003502653187_678121182314631,/v2.2/100003502653187_678121182314631和/v2.2/499657186827699_678121182314631所有错误。
/v1.0/100003502653187/posts仅包含一个帖子,类似,/v2.2/100003502653187/posts为空。
作为参考,这里是the GitHub issue,我们一直在跟踪此问题。
答案 0 :(得分:3)
基本上你需要read_stream
(你的应用程序不会被授予)。是的,即使帖子是公开的,您仍然需要read_stream
才能获得对各种帖子的读取权限。
您可以在Graph API Explorer中轻松使用它。首先授予您的应用read_stream
权限以获取Feed中的商品ID,这将为您提供“表单应用范围的用户ID下划线帖子ID”。然后删除read_stream
(再次单击“获取访问令牌”并使用“清除”按钮),并尝试多个user_*
权限 - 您将看到大多数帖子,甚至是公开的,你仍然只会得到“不支持的获取请求”,这意味着你不能阅读该对象。
Fe,我有一个公开信息,在我的时间轴上分享来自其他网页的视频帖子,type
为video
且status_type
为shared_story
,但均不{ {1}}也user_status
允许我阅读此帖 - 只有当我再次授予user_videos
时,我的应用才能阅读该帖子。与read_stream
和status_type status
类型的其他公开帖子相同 - 可以使用mobile_status_update
阅读,而不是使用任何read_stream
权限。
简而言之:使用API v2不再可能实现您想要实现的目标,并且user_*
仅限于在没有正式FB客户端的平台上的应用程序的限制。
答案 1 :(得分:0)
一个主张是让api调用写facebook帖子,因为那些返回有效的post_id,你可以使用
时你可以看到他的帖子ID不是以他的public id
开头的,因为你写了525575504 _ *
但他们仍然提供不受支持的获取请求
第三,因为上面没有工作的是那些公开的帖子吗?