C#FaceBook APIを使用して、ステータスの更新と画像を壁に投稿しています。私は次のコードを使用しています:
public string PostToFaceBookPage(string appKey, string appSecret, string wallId, string postMessage, string imageUrl)
{
string id = "";
if (string.IsNullOrEmpty(imageUrl))
imageUrl = "";
var client = new Facebook.FacebookClient();
dynamic result = client.Post("oauth/access_token",
new
{
client_id = appKey,
client_secret = appSecret,
grant_type = "client_credentials",
redirect_uri = "anywhere",
scope = "publish_stream"
});
client.AccessToken = (result)["access_token"];
if (!IsId(wallId))
{
result = client.Get(wallId);
id = result["id"];
} else
{
id = wallId;
}
if (imageUrl == "")
{
result = client.Post("/" + id + "/feed", new
{
message = postMessage,
scope = "publish_stream",
privacy = "{\"value\": \"EVERYONE\"}"
});
} else
{
var uri = new Uri(imageUrl);
string imageName = Path.GetFileName(uri.LocalPath);
string mimeType = GetMimeType(Path.GetExtension(uri.LocalPath));
var media = new Facebook.FacebookMediaObject
{
FileName = imageName,
ContentType = mimeType
};
media.SetValue(GetImage(imageUrl));
result = client.Post("/" + id + "/feed", new
{
message = postMessage,
source = media,
picture = imageUrl,
scope = "publish_stream",
privacy = "{\"value\": \"EVERYONE\"}"
});
}
return "";
}
すべてが正常に機能しています。私の唯一の問題は、実際の画像のサイズに関係なく、すべての画像が同じ正確なサイズを投稿していることです。画像の小さなサムネイルを投稿するだけでなく、FaceBookに画像のサイズを伝える方法はありますか?