アプリケーションで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 で を更新して、投稿が適切なオブジェクトに適切に投稿されるようにします。アップロードする画像がある場合は、辞書に追加します。
それを踏まえて、以下の質問をさせていただきます。
- fbUserID がユーザー ID の場合、投稿は画像と説明で完全に行われますが、ID が PageID の場合、説明テキストのみが投稿され、画像は単に無視されます (ユーザーは manage_page 権限を持っているので、私はそれを考えていません)許可の問題です)。画像がページの壁に投稿されていないという私が間違っていることは何ですか?
- 画像ではなく動画を投稿したい場合、このコードの何を変更すればよいですか?
ここSOでは、他のテクノロジーに関する多くの問題がすでに見られましたが、決定的な解決策はありませんでした。
本当にありがとうございました。
よろしく、グーテンベルク