さて、私はjavascriptAPIを使用してFacebookGraphAPIを使用しています。私はユーザーのプロファイルではなく、ユーザーのページでイベントを作成することに取り組んできましたが、それは問題なく機能しています。ただし、イベントとともにプロフィール写真をアップロードしようとすると、イベントは正常に作成されますが、その写真がありません。
私はいくつかの解決策を試しましたが、うまくいくものをまだ見つけていません。
これが私が現在持っているものです:
function SubmitEvent(descrip, name, start,end, line1, city, state, zip, lat, lon,path)
{
var eventMsg = document.getElementById('event-msg');
var myJsonEvent = {
"name": name,
"description": descrip,
"start_time": start,
"end_time": end,
"location": city + ", " + state,
"venue": {
"street": line1,
"city": city,
"state": state,
"country": "United States",
"latitude": lat,
"longitude": lon
},
"privacy": "OPEN",
"picture":
"http://stage.localruckus.com/Content/Uploads/Thumbnails/Eddie%20Delahunt_card_
84dc116b-f7e5-477b-b0bb-60ecdbe41955.jpg"
};
var select = document.getElementById("facebook-page-select");
var pageId = select.options[select.selectedIndex].value;
var res;
FB.api(pageId, 'post', myJsonEvent, function (result) {
console.log(result);
if (result.id == undefined) {
eventMsg.innerHTML = 'There was a problem creating the event, please
try again. Error: '+result.message;
}
res = result.id;
eventMsg.innerHTML = 'Event posted id: ' + result.id;
eventId = result.id;
postPicture(path);
});
}
function postPicture(path) {
var cookie = eventId;
var token = getCookie('access');
if (cookie != null && cookie != undefined && token != null && token != undefined) {
$.ajax({
type: "POST",
url: "https://graph.facebook.com/" + cookie,
data: {
message: "Event picture",
url:
"http://stage.localruckus.com/Content/Uploads/Thumbnails/Eddie%20Delahunt_card_
84dc116b-f7e5-477b-b0bb-60ecdbe41955.jpg",
access_token: token,
format: "json"
},
success: function (data) {
alert("Picture posted successfully");
}
});
}
}
postPictureメソッドも、イベント作成api呼び出しで画像へのパスを提供することも機能していないようですが、エラーなどは発生しません。
私はグーグル、SO、そしてフェイスブックのドキュメントに多くの時間を費やしましたが、まだ答えを見つけていません。Facebookのドキュメントでこの小さなスニペットを見つけました:
写真
読む
/ EVENT_ID /pictureにHTTPGETリクエストを発行すると、イベントのプロフィール画像のURLへのHTTP302リダイレクトが返されます。
作成/更新
イベントの管理者に対するcreate_event権限と次のパラメーターを使用して/EVENT_ID/pictureにHTTPPOSTリクエストを発行することにより、プロファイル画像をイベントに追加できます。
パラメータ説明タイプ必須
ソース画像コンテンツmultipart/form-data yes
リクエストが成功した場合はtrueを返します。
消去
イベントの管理者に対してcreate_event権限を持つ?EVENT_ID /pictureにHTTPDELETE要求を発行することにより、イベントのプロファイル画像を削除できます。
リクエストが成功した場合はtrueを返します。
しかし、不思議な「ソース」パラメーターや、データがフォームからのものではない場合にマルチパートフォームデータを作成/投稿する方法をまだ見つけていません。
誰かが私を助けることができますか?私はあなたが私に与えることができるどんな助けでも本当に感謝します。