0

私はgrailsfacebook-sdkプラグインを使用して、Facebookに接続して投稿しています。

ユーザーのウォールにメッセージを公開するには、次を使用します。

def publishMessageResponse = facebookClient.publish("me/feed", [message:"RestFB test"])

これは問題なく機能しますが、ユーザーの特定のアルバムに画像を投稿したいと思います。ドキュメントには、次のものと連携する必要があると記載されています。

def publishPhotoResponse = facebookClient.publishFile("me/photos", [message, "Test cat"], "/cat.png")

しかし、私は常に「ファイルが見つかりません」というエラーを受け取ります。私が持っている画像はデータベースに保存されており、画像のURLを取得することで取得できます。

画像のURLを知っているので、この画像を特定のユーザーフォトアルバムに投稿するにはどうすればよいですか?新しいアルバムを作成するにはどうすればよいですか?

4

1 に答える 1

0

私はfacebook-sdkを使用していませんが、プロジェクトの場所に関連するファイル「/ cat.png」が見つからないという問題があると思います。有効でアクセス可能なファイル パスを指定する必要があります。

これは、publishFile... の前に次のようなことを行うことで確認できます。

assert new File("/cat.png").exists(), "File does not exist!"

アップデート:

URL をファイルに変換する例を次に示します。 実際のファイルを使用する以外に他のオプションがある場合、これは理想的なソリューションではない可能性があります。

    def someUrl = "http://www.google.com/images/logo.gif";
    def file = File.createTempFile("facebookUpload",".temp").withOutputStream { out ->
        out << new URL(someUrl).openStream()
    }

    file.deleteOnExit();
    def publishPhotoResponse = facebookClient.publishFile("me/photos", [message, "Test cat"], file)
于 2012-11-12T13:22:33.277 に答える