Facebook 最近宣布的更改(例如2018 年 4 月 24 日和 5 月 1 日)导致我们关注 Facebook Business SDK,据我所知,它是 Facebook Marketing/Facebook Ads API 的后代。
Facebook 指出了他们在 Github 上的各种宝石,但大多数示例都参考了管理广告和活动。例如facebook/facebook-ruby-business-sdk。
使用Facebook 入门页面中的 test.rb 示例,我能够拼凑出以下测试。正如您在下面看到的,似乎每个检索字段值的方法调用似乎都会导致单独的 API 调用(或至少某种形式的网络访问):
1 > FacebookAds.configure do |config|
2 > config.access_token = '<deleted>'
3?> config.app_secret = '<deleted>'
4?> end
=> #<FacebookAds::Config:0x007fd1f453ade0 @access_token="<deleted>", @app_secret="<deleted>">
5 > page = FacebookAds::Page.get('125200950858892', "about,fan_count,impressum,username")
=> #<FacebookAds::Page {:id=>"125200950858892"}>
6 > page.__all_fields
=> #<Set: {:about, :fan_count, :impressum, :username, :id}>
7 > page.about
=> "Brandle® delivers social media security & brand protection. It's the easiest way to Discover, Inventory, Monitor & Patrol your social presence!"
# Turn wifi off
8 > page.username
Faraday::ConnectionFailed: getaddrinfo: nodename nor servname provided, or not known
# Turn wifi on
9 > page.username
=> "BrandleSystem"
Graph API 本身使得检索页面(节点)的多个字段非常容易,所以我不明白为什么新的 SDK 表面上看起来如此低效(或至少记录不充分)。
我想我错过了一些相当明显的东西。有一个批处理 API,但我认为这更多的是一次检索多个页面,而不是检索单个页面的多个字段。
我希望其他人已经弄清楚了这一点。
谢谢你。
PS:如果有人有我所缺乏的声望点,我认为这个线程应该有facebook-business-sdk
和facebook-ruby-business-sdk
作为标签。