【发布时间】:2011-05-19 12:01:49
【问题描述】:
我想访问图形 API 以获取我网站不同页面的共享数量。我可以使用 GET 方法来执行此操作,但我想使用 POST 以便可以在单个请求中发送更多 url。我对 GET 的当前实现是
有人可以帮忙吗?
【问题讨论】:
我想访问图形 API 以获取我网站不同页面的共享数量。我可以使用 GET 方法来执行此操作,但我想使用 POST 以便可以在单个请求中发送更多 url。我对 GET 的当前实现是
有人可以帮忙吗?
【问题讨论】:
这没有很好的记录(我的意思是我在寻找它时没有找到信息!),但是有一种方法可以通过 POST 方法将所有参数传递给 Graph API: 在您的示例中,您应该发布到http://graph.facebook.com/ 使用以下数据: ids=http://umairj.com/,http://umairj.com/146/how-to-clear-facebook-shares-cache/&method=GET
我不确定 POST DATA 的编码..在我们的例子中,我们只是使用 ids=.....,.....,..... 带有数字 FB 用户 ID 和我们不需要做任何编码,但你可能需要一些 url-encoding
不要忘记 &method=GET 否则它将不起作用!当我们通过 GET 传递太多 id 时,它帮助我打破了导致 Internet Explorer 错误的 url 长度限制(我认为 RFC 说 1024 个字符,所有浏览器都支持更多,IE 仅 ~4096 )
如果您想访问非公开信息,同样的技巧也适用于 https://graph.facebook.com/,只要您将 &session_token=***** 添加到您的查询中
【讨论】:
您可以尝试运行 FQL 查询来获取多个网址的统计信息。 Facebook link_stat documentation 有一个如何做到这一点的例子。我很确定您不能发布到 FQL 查询或您正在使用的图形 api,但不幸的是。您的 FQL 查询将是:
SELECT url, share_count, like_count FROM link_stat WHERE url IN("http://umairj.com/","http://umairj.com/146/how-to-clear-facebook-shares-cache/" )
Facebook 提供FQL testing tool 提供帮助。
更新:他们的 API documention (see section titled "Delete) 提到您可以对他们的任何方法执行 HTTP POST 并将变量 method 设置为您想要的方法。你可以试试这个,尽管它是为 javascript 客户端不可用的 delete 和 put 方法而设计的。它看起来仍然是基于 url 的,所以我不确定它是否会像你想要的那样采用表单编码参数。
【讨论】:
我在 Facebook 工作,我更新了我们的 Graph API 文档,以记录解决非常大的请求的方法:
https://developers.facebook.com/docs/graph-api/using-graph-api#largerequests
【讨论】: