0

アプリケーションでFacebook .Net SDK ( http://facebooksdk.net/ ) を使用しています。ユーザーの壁または彼のページに画像を投稿する必要があります。

これを行うには、次のコードがあります。

var postUrl = "<fbid>/feed";
var fbParameters = new Dictionary<string,object>();
fbParameters["message"] = postRequest.FacebookPostContent;
if (postRequest.MediaData != null && postRequest.MediaData.Length > 0)
{
     var stream = new MemoryStream(postRequest.MediaData);
     if (postRequest.ContentType.Equals("image/jpeg"))
     {
       postUrl = postUrl.Replace("/feed", "/photos");
       fbParameters["picture"] = new FacebookMediaStream { ContentType = postRequest.ContentType, FileName = DateTime.UtcNow.ToString("ddmmyyyyhhmmss") + "-photo.jpeg" }.SetValue(stream);
      }
}
if (!string.IsNullOrWhiteSpace(postRequest.FacebookPageId))
{
      fbUserID = postRequest.FacebookPageId;
}
postUrl = postUrl.Replace("<fbid>", fbUserID);
var result = await facebookClient.PostTaskAsync(postUrl, fbParameters);

私のpostUrl変数を見てください。Facebook のユーザー ID またはページの場合は PageID で を更新して、投稿が適切なオブジェクトに適切に投稿されるようにします。アップロードする画像がある場合は、辞書に追加します。

それを踏まえて、以下の質問をさせていただきます。

  1. fbUserID がユーザー ID の場合、投稿は画像と説明で完全に行われますが、ID が PageID の場合、説明テキストのみが投稿され、画像は単に無視されます (ユーザーは manage_page 権限を持っているので、私はそれを考えていません)許可の問題です)。画像がページの壁に投稿されていないという私が間違っていることは何ですか?
  2. 画像ではなく動画を投稿したい場合、このコードの何を変更すればよいですか?

ここSOでは、他のテクノロジーに関する多くの問題がすでに見られましたが、決定的な解決策はありませんでした。

本当にありがとうございました。

よろしく、グーテンベルク

4

2 に答える 2

0

とった!

Facebook は、添付アイコンのように、画像の投稿を許可された人がそこにいる、テスト ページ上の他のユーザーによる最近の投稿と呼ばれる別のセクションをページ内に作成します。ページのフィード/ウォールに直接投稿するには、ユーザー access_token を使用する代わりに (ユーザーが manage_pages パーミッションを付与した場合でも)、それぞれのページの /me/accounts オブジェクトにある access_token を使用するだけです。

ビデオ投稿については、ContentType を「video/mpeg 」に設定し、サーバーでディクショナリに画像パラメータを設定する代わりに、ビデオフィールドにビデオ バイト [] を設定しました。

ありがとう!

よろしく、

于 2013-10-19T23:50:48.713 に答える