我正在使用 Koala gem 获取 Facebook 帖子上的指标(喜欢、评论和分享)。我真的好几个月没碰考拉代码了,但突然停止工作了。我能够获得喜欢和评论,但不能获得分享。我检查了 gem 的文档以及 GitHub 上的问题,但没有看到与我的问题相关的任何内容。不确定是我的代码还是 gem 还是对 Facebook API 的更改。
我有以下方法,该方法由另一个方法调用,该方法负责更新帖子上的所有指标。
def call_facebook_api(client, method, pid, metric)
resp = client.method(method).call(pid, metric)
rescue Koala::Facebook::ClientError => e
puts "Rescue from #{e}"
puts "Method: #{method}"
puts "Metric: #{metric}"
puts "Post ID: #{pid}"
return nil
end
以下是方法参数的一些示例值:
client
=> #<Koala::Facebook::API:0x007fbbfdf25dd0 @access_token="super_secret",@app_secret="super_duper_secret">
method
=> :get_object
pid
=> "202001613484188_1142111705834093"
metric
=> {:fields=>["shares"]}
当我使用这些输入运行上述方法时,它返回此错误:
Koala::Facebook::ClientError: type: GraphMethodException, code: 100, message: Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api [HTTP 400]
from /Users/ACIDSTEALTH/.gem/ruby/2.3.0/gems/koala-2.2.0/lib/koala/api/graph_api.rb:515:in `block in graph_call'
我也尝试过以下组合,但均未成功:
client.get_object(pid)
client.get_object(pid, fields: ['shares'])
client.get_object(pid, 'shares')
client.get_object("#{pid}/sharedposts")
client.get_object("#{pid}?fields=sharedposts")
client.get_object("#{pid}?fields=shared")
client.get_object("#{pid}?fields=shares")
client.get_connections(pid)
client.get_connections(pid, 'shares')
client.get_connections("#{pid}/sharedposts")
参考 Graph API 文档并没有让我对这个问题有任何新的见解。
正如我之前所说,我已经好几个月没有碰过上面的代码了,但它最近才停止工作。我最近确实将我的 Rails 应用程序从 4.06 升级到了 4.2.5.1。我还从 Ruby 2.0.0 升级到了 2.3.0。不过我没有升级考拉宝石。我已经在运行 2.2.0(最新)。