1

私は Koala gem を使用して、Facebook の投稿に関する指標 (いいね!、コメント、共有) を取得しています。私は文字通り数か月間 Koala コードに触れていませんでしたが、突然動作しなくなりました。いいねやコメントはできますが、シェアはできません。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 (最新) を実行していました。

4

0 に答える 0