Facebook 图表 API:从 post URL 中查找图表对象
Facebook Graph API: Find graph object from post URL
给定 public Facebook post 的 URL,如何在 FB Graph API 中找到 post 对象? (其次,为什么通过 API 访问时有那么多用户提要是空的或几乎是空的?)
我们希望能够通过 v2.x comment on or like post
图 API,给定 post 的 URL。这样做需要 post 的对象
ID,我们可以对其进行一些有根据的猜测,但是访问
通过 API 的实际对象已被证明是不可靠的(适用于某些 post 但
不是其他人)。
v2的API引入了app-scoped user IDs,而post的ID一般看起来
采用 {app-scoped user id}_{unique post id} 的形式。这里有
使用各种组合在 API 中查找 post 的一些尝试的详细信息
这些 ID(全局用户 ID、应用范围的用户 ID 和 post ID)。
从一个简单的例子开始:https://www.facebook.com/evan.prodromou/posts/10153023417510505. Key characteristics are that it's public, it's not a share of another post, and most importantly it has no photo(s), which add extra ids and URLs for the individual photo(s) and photo set. Evan's profile is also public, i.e. https://www.facebook.com/evan.prodromou不显示通用内容当前不可用
尝试 URL 中的 post id,/v1.0/10153023417510505 and /v2.2/10153023417510505 都给出了 Unsupported get request(代码100) 错误。
Evan 的全局用户 ID 是 525575504。将其附加为前缀,/v1.0/525575504_10153023417510505 and /v2.2/525575504_10153023417510505 仍然会给出相同的 Unsupported get request 错误。
同样的错误,使用他的应用范围的用户 ID,/v2.2/10152350676805505_10153023417510505。
好的,让我们试试另一个方向。我们将翻阅用户的提要,直到找到有问题的 post。感觉这更像是 expected 用例 API...
两个全局/v2.2/525575504/posts and app-scoped /v2.2/10152350676805505/posts return nothing, but /v1.0/525575504/posts returns two recent posts, this like and this post. Not sure why only those two, even though has plenty of other recent public posts. The like is fetchable via its id
field in both api versions, i.e. /v1.0/525575504_10153045879215505 and /v2.2/10152350676805505_10153045879215505, but both API versions return the Unsupported get request error when fetching the post via its id field, e.g. /v1.0/525575504_351575675029953 and /v2.2/10152350676805505_351575675029953
正在尝试另一个 public post,这个有图片:https://www.facebook.com/andigalpern/posts/678121182314631 . /v1.0/100003502653187_678121182314631, /v2.2/100003502653187_678121182314631, and /v2.2/499657186827699_678121182314631 全部错误。
/v1.0/100003502653187/posts only includes one post, a like, and /v2.2/100003502653187/posts 为空。
作为参考,这里是 the GitHub issue 我们一直在跟踪这个问题的地方。
一个建议是调用 api 来写 Facebook 帖子,因为那些 return 有效 post_id 您可以使用
您可以看到他的帖子 ID 不是以您写的 public id
开头的 525575504_*
但他们仍然提出不受支持的获取请求
第三个,因为上面的那些帖子肯定没有用public?
基本上你需要 read_stream
为此(你的应用程序不会被授予)。是的,即使 post 是 public,您仍然需要 read_stream
才能获得对各种 post 的读取权限。
您可以在 Graph API Explorer 中轻松使用它。首先授予您的应用程序 read_stream
权限以获取您的提要中项目的 ID——这将为您提供“表单应用程序范围的用户 ID 下划线 post ID”的 ID。然后删除 read_stream
(通过再次单击“获取访问令牌”并使用“清除”按钮),并尝试几个 user_*
权限 – 你会看到大部分 posts,即使是 public 的,你仍然只会得到“Unsupported get request”,这只是意味着你不能读取那个对象。
F.e.,我有一个 public post 从我的时间轴上的另一个页面分享了一个视频 post,type
是 video
和 status_type
是 shared_story
,但 user_status
和 user_videos
都不允许我阅读此 post – 只有当我再次授予 read_stream
时,我的应用可以读取 post。与 status
和 status_type mobile_status_update
类型的另一个 public post 相同——可读 read_stream
,而不是任何 user_*
权限。
简而言之:使用 API v2 和限制 read_stream
将仅授予不存在官方 FB 客户端的平台上的应用程序,您想要实现的目标已不再可能。
给定 public Facebook post 的 URL,如何在 FB Graph API 中找到 post 对象? (其次,为什么通过 API 访问时有那么多用户提要是空的或几乎是空的?)
我们希望能够通过 v2.x comment on or like post 图 API,给定 post 的 URL。这样做需要 post 的对象 ID,我们可以对其进行一些有根据的猜测,但是访问 通过 API 的实际对象已被证明是不可靠的(适用于某些 post 但 不是其他人)。
v2的API引入了app-scoped user IDs,而post的ID一般看起来 采用 {app-scoped user id}_{unique post id} 的形式。这里有 使用各种组合在 API 中查找 post 的一些尝试的详细信息 这些 ID(全局用户 ID、应用范围的用户 ID 和 post ID)。
从一个简单的例子开始:https://www.facebook.com/evan.prodromou/posts/10153023417510505. Key characteristics are that it's public, it's not a share of another post, and most importantly it has no photo(s), which add extra ids and URLs for the individual photo(s) and photo set. Evan's profile is also public, i.e. https://www.facebook.com/evan.prodromou不显示通用内容当前不可用
尝试 URL 中的 post id,/v1.0/10153023417510505 and /v2.2/10153023417510505 都给出了 Unsupported get request(代码100) 错误。
Evan 的全局用户 ID 是 525575504。将其附加为前缀,/v1.0/525575504_10153023417510505 and /v2.2/525575504_10153023417510505 仍然会给出相同的 Unsupported get request 错误。
同样的错误,使用他的应用范围的用户 ID,/v2.2/10152350676805505_10153023417510505。
好的,让我们试试另一个方向。我们将翻阅用户的提要,直到找到有问题的 post。感觉这更像是 expected 用例 API...
两个全局/v2.2/525575504/posts and app-scoped /v2.2/10152350676805505/posts return nothing, but /v1.0/525575504/posts returns two recent posts, this like and this post. Not sure why only those two, even though has plenty of other recent public posts. The like is fetchable via its
id
field in both api versions, i.e. /v1.0/525575504_10153045879215505 and /v2.2/10152350676805505_10153045879215505, but both API versions return the Unsupported get request error when fetching the post via its id field, e.g. /v1.0/525575504_351575675029953 and /v2.2/10152350676805505_351575675029953正在尝试另一个 public post,这个有图片:https://www.facebook.com/andigalpern/posts/678121182314631 . /v1.0/100003502653187_678121182314631, /v2.2/100003502653187_678121182314631, and /v2.2/499657186827699_678121182314631 全部错误。
/v1.0/100003502653187/posts only includes one post, a like, and /v2.2/100003502653187/posts 为空。
作为参考,这里是 the GitHub issue 我们一直在跟踪这个问题的地方。
一个建议是调用 api 来写 Facebook 帖子,因为那些 return 有效 post_id 您可以使用
您可以看到他的帖子 ID 不是以您写的 public id
开头的 525575504_*
但他们仍然提出不受支持的获取请求
第三个,因为上面的那些帖子肯定没有用public?
基本上你需要 read_stream
为此(你的应用程序不会被授予)。是的,即使 post 是 public,您仍然需要 read_stream
才能获得对各种 post 的读取权限。
您可以在 Graph API Explorer 中轻松使用它。首先授予您的应用程序 read_stream
权限以获取您的提要中项目的 ID——这将为您提供“表单应用程序范围的用户 ID 下划线 post ID”的 ID。然后删除 read_stream
(通过再次单击“获取访问令牌”并使用“清除”按钮),并尝试几个 user_*
权限 – 你会看到大部分 posts,即使是 public 的,你仍然只会得到“Unsupported get request”,这只是意味着你不能读取那个对象。
F.e.,我有一个 public post 从我的时间轴上的另一个页面分享了一个视频 post,type
是 video
和 status_type
是 shared_story
,但 user_status
和 user_videos
都不允许我阅读此 post – 只有当我再次授予 read_stream
时,我的应用可以读取 post。与 status
和 status_type mobile_status_update
类型的另一个 public post 相同——可读 read_stream
,而不是任何 user_*
权限。
简而言之:使用 API v2 和限制 read_stream
将仅授予不存在官方 FB 客户端的平台上的应用程序,您想要实现的目标已不再可能。