【问题标题】:How do I specify the API version in a Facebook batch API request?如何在 Facebook 批量 API 请求中指定 API 版本?
【发布时间】:2015-02-26 22:42:16
【问题描述】:

Facebook 批处理 API 请求允许调用者在单个 HTTP POST 中指定多个 API 端点。

发布到一个基本 URL:https://graph.facebook.com

帖子的正文包含一个 JSON 哈希,其中包含要在“relative_url”字段中调用的相对 URL,例如“我/喂”。

如何在此调用中指定 API 版本?

例如,要访问 2.2 版本的 API,我是发帖到 https://graph.facebook.com/v2.2/ 还是在 relative_url 中指定“v2.2/me/feed”?

截至 2015 年 2 月 26 日,Facebook API 文档在这一点上尚不清楚: https://developers.facebook.com/docs/graph-api/making-multiple-requests

【问题讨论】:

  • Slartibarfast 下面的答案似乎是正确的,但对于以后的帖子;请注意您已经尝试过的内容。您是否尝试了两种创建批处理请求的方法,并获得了结果?

标签: facebook facebook-graph-api


【解决方案1】:

您可能必须输入相对 url 。这是来自营销批处理 API 文档的 example

curl -F 'access_token=______' 
  -F 'test1=@./test1.jpg'  
  -F 'batch=[
             {
              "method": "POST",
              "name": "create_creative",
              "relative_url": "<API_VERSION>/act_187687683/adcreatives",
              "attached_files": "test1",
              "body": "title=Test title&body=Test body&link_url=http://www.test12345.com&image_file=test1.jpg"
             },
             {
              "method": "POST",
              "relative_url": "<API_VERSION>/act_187687683/adgroups",
              "body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"US\"]}&name=test1"
             },
             {
              "method": "POST",
              "relative_url": "<API_VERSION>/act_187687683/adgroups",
              "body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"GB\"]}&name=test2"
             },
             {
              "method": "POST",
              "relative_url": "<API_VERSION>/act_187687683/adgroups",
              "body": "campaign_id=6004163746239&redownload=1&bid_type=CPC&bid_info={\"clicks\":150}&creative={\"creative_id\":\"{result=create_creative:$.id}\"}&targeting={\"countries\":[\"IE\"]}&name=test3"
             }
            ]' https://graph.facebook.com/

我假设这对其他请求也很常见。

其他各种阅读来源

1.) 来自here

将版本标识符预先附加到请求路径的开头。为了 例如,这是对 v2.2 的调用:

GET graph.facebook.com
  /v2.2/me

这适用于所有版本,以这种通用形式:

GET graph.facebook.com
  /vX.Y/{request-path}

2.) 把它放在 url 中似乎是为了Dialogs and Social plugins

对话框

版本化路径不仅适用于 API 端点,也适用于 用于对话和社交插件。例如,如果你想生成 Web 应用程序的 Facebook 登录对话框,您可以在前面添加一个版本 生成对话的端点的编号:

https://www.facebook.com/v2.0/dialog/oauth?
  client_id={app-id}
  &redirect_uri={redirect-uri}

社交插件

如果您使用的是我们的社交插件的 HTML5 或 xfbml 版本, 渲染的版本将由指定的版本决定 您正在初始化 JavaScript SDK。

如果您要插入我们其中一个的 iframe 或纯链接版本 插件,您可以将版本号添加到 插件:

<iframe
 src="//www.facebook.com/v2.0/plugins/like.php?href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&amp;width&amp;layout=standard&amp;action=like&amp;show_faces=true&amp;share=true&amp;height=80&amp;appId=634262946633418" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:80px;" allowTransparency="true"> </iframe>

【讨论】:

  • 我真正想要的是让来自 Facebook 的人给我们 Facebook 认可的答案,然后更新权威文档。取而代之的是,我认为您可能是对的。
  • 对你的问题发表评论的@Flaxfield 似乎是 Facebook 的开发 sup 工程师(从他的个人资料来看),所以我想这是你最接近 SO :)
猜你喜欢
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 2021-10-08
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
相关资源
最近更新 更多