好的,我正在使用 javascript API 处理 Facebook Graph API。我一直在努力在用户页面上创建事件,而不是在他们的个人资料上,我工作得很好。但是,当我尝试使用活动上传个人资料图片时,活动成功创建,但没有图片。
我尝试了许多解决方案,但还没有找到一个有效的解决方案。
这是我目前拥有的:
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 调用提供图像路径似乎都不起作用,尽管我没有收到任何错误或类似的东西。
我在 google、SO 和 facebook 文档上花了很多时间,但还没有找到答案。我在 facebook 文档中找到了这个小片段:
图片
读
向 /EVENT_ID/picture 发出 HTTP GET 请求会返回 HTTP 302 重定向到事件的个人资料图片的 URL。
创建/更新
您可以通过向 /EVENT_ID/picture 发出 HTTP POST 请求来向事件添加个人资料图片,该请求具有事件管理员的 create_event 权限和以下参数:
参数 描述 类型 必填
source 图片内容 multipart/form-data 是
如果请求成功,则返回 true。
删除
您可以通过向具有活动管理员的 create_event 权限的 ?EVENT_ID/picture 发出 HTTP DELETE 请求来删除活动的个人资料图片。
如果请求成功,则返回 true。
但是我还没有找到神秘的“源”参数,或者当数据不是来自表单时如何创建/发布多部分表单数据。
有人可以帮帮我吗?我真的很感激你能给我的任何帮助。