0

私の知る限り、写真を投稿する方法は 2 つあります。

方法 1:

以下の fb ドキュメントは、提供された URL を使用して画像を投稿する方法を示しています。

https://developers.facebook.com/blog/post/526/?ref=nf

もちろん試してみましたが、投稿メソッドを使用してFacebook APIエクスプローラーでここでデバッグを試み、以下のようにパラメーターを入力したときに、画像のURLを受け入れないようです。

SomeAlbumID/photos?=access_token=MyTOKEN&url=http%3a%2f%2fcutree.com%2fcutreefbapp%2fimg1.bmp&message=ファミリー+ツリー

それは言う例外を返します

{
  "error": {
    "message": "http\u00253a\u00252f\u00252fcutree.com\u00252fcutreefbapp\u00252fimg1.bmp is an internal url, but this is an external request.", 
    "type": "CurlUrlInvalidException"
  }
}

「内部 URL ですが、これは外部要求です。」fbappに登録されているものと同じドメインを使用していて、サーバー自体からのリクエストも行っているため、これが何を意味するのかわかりません。

そのfbが少数のサーバーからの画像のみを受け入れる場所をいくつか読んだことがありますが、誰か助けてもらえますか。

方法 2:

これは、fb が「写真を公開するには、写真ファイルを multipart/form-data として添付して POST リクエストを発行する」というように、バイト単位の画像データを Post 本文に添付する方法です。

ただし、誰もが c# 用の fb sdk を使用してそれを行っています。誰もがこの問題に対して簡単な http 投稿方法を提供できますか。

以下の方法で画像データをストリーミングしてみました

public MyFacebookClass FBPost(string URI, string Parameters)
{
    System.Net.WebRequest req = System.Net.WebRequest.Create("https://graph.facebook.com/" + URI);
    req.ContentType = "application/x-www-form-urlencoded";
    req.Method = "POST";
    byte[] bytes = BmpToBytes_Serialization(new Bitmap("C:\\Users\\atul\\cutreefbapp\\DefaultThumb.bmp"));
    req.ContentLength = bytes.Length;
    System.IO.Stream os = req.GetRequestStream();
    os.Write(bytes, 0, bytes.Length); 
    os.Close();
    System.Net.WebResponse resp = req.GetResponse();
    if (resp == null) return null;
    System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
    return new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<MyFacebookClass>(sr.ReadToEnd().Trim());

}
4

2 に答える 2

0

パラメータを指定して写真を投稿すると、url確実に機能します。そうでない場合は、何か間違ったことをしています。

(グラフ API エクスプローラーで画像の URL を試してみたところ、期待どおりに動作しました。)

post メソッドを使用して Facebook API Explorer でここでデバッグを試み、以下のようにパラメーターを入力すると、

SomeAlbumID/photos?=access_token=MyTOKEN&url=http%3a%2f%2fcutree.com%2fcutreefbapp%2fimg1.bmp&message=ファミリー+ツリー

それがあなたが投稿しようとした実際のアドレスである場合、との=間は明らかに間違っています。photos?access_token

于 2012-09-29T16:14:03.283 に答える
-1

あなたが抱えている問題は、コードが正しくないことです。Facebook に写真を投稿するには、マルチパート フォーム データ投稿を使用する必要があります。私は C# SDK を使用したことはありませんが、画像を送信する前にマルチパート フォーム ポストを内部で作成することは確かです。

ここに投稿されているものと同様のことを行う必要があります。アプリから Facebook 用に正確にこれを行うコードを投稿しようとしましたが、少し長いです。

于 2012-09-07T05:16:47.583 に答える