2

Koala gem を使用して Facebook グラフ API を呼び出す Rails プロジェクトを行っています。グラフ API を介して、写真/ビデオ (写真リンクではない) を添付して Facebook ウォールに投稿することはできますか?

このコマンドを使用して画像を配置できます

graph = Koala::Facebook::API.new(access_token)
graph.put_picture(params["picture_path"]) #where params["picture_path] is ActionDispatch::Http::UploadedFile object

しかし、これはアルバムにのみアップロードします

私はこれに失敗しました:

graph = Koala::Facebook::API.new(access_token)
graph.put_wall_post("hello", {"picture" => params["picture_path"]} ) #where params["picture_path] is ActionDispatch::Http::UploadedFile object


エラー:

 undefined method `local_path' for #<ActionDispatch::Http::UploadedFile:0x00000106100a70>

ヘルプ ?

4

2 に答える 2

1

rmagick で生成された画像の例:

最初にイメージを作成します。

@clown = Magick::ImageList.new("public/images/framed_clown.jpg")

次に、アルバム (StringIO を使用する必要があります) と to_blob を挿入します。

@clown_id = StringIO.open(@clown.to_blob) do |strio|
  response = @graph.put_picture(strio, "image/jpeg")
  response['id']
end

URL を取得するために、@clown_id に画像の ID が含まれるようになりました。

@picture_url = @graph.get_picture(@clown_id)

最後に、壁に投稿できますか? publish_stream パーミッションが必要であることを思い出してください。

FACEBOOK_SCOPE = 'user_likes,user_photos,user_photo_video_tags,publish_stream'

したがって、次のように言えます。

begin 
  @graph.put_wall_post("This a test", {"picture" => @picture_url})
rescue => e
  if(e.fb_error_type == "OAuthException")
    # Already Posted
  end
end

重複したステータスメッセージのコントロールを配置する方が良いため....

楽しみ!!!!!

于 2012-06-06T12:13:28.107 に答える
0

これは私のために働いた:

graph.put_picture(params["picture_path"], {:message => "Message"})

(から取得: https://github.com/arsduo/koala/wiki/Uploading-Photos-and-Videos )

于 2012-11-12T16:53:52.093 に答える