如何使用 API 将媒体附加到 Facebook Post
How to attach Media to a Facebook Post using the API
我已按照 Facebook 文档请求访问令牌和 post 到 Facebook 页面。
现在,我想创建一个 post 并在其中附加一些照片 post 但 Facebook 仅 post 正文而不包括照片文件。
我是这样做的:
...
let mediaIds = [];
for (let photoUrl of photoUrls) {
let mediaUploadUrl = `https://graph.facebook.com/${pageId}/photos?url=${photoUrl}&access_token=${pageAccessToken}`;
let response = await axios.post(mediaUploadUrl);
let { id } = response.data;
if (id) {
mediaIds.push(id);
}
}
// Now that we have the mediaIds, let's attach them to the post as below:
let urlParams = new URLSearchParams();
urlParams.append("access_token", pageAccessToken);
urlParams.append("message", "Hello World");
let postUrl = `https://graph.facebook.com/${pageId}/feed`;
if (mediaIds.length > 0) {
for (let i = 0; i < mediaIds.length; i++) {
let mediaId = mediaIds[i];
let mediaIdObject = { media_fbid: mediaId };
urlParams.append(`attached_media[${i}]`, mediaIdObject);
}
}
try {
let { data } = await axios.post(postUrl, urlParams);
let postId = data.id;
} catch (e) {
done = false;
console.log(e); //An unknown error has occurred is the error message I keep getting
}
...
我一直在return得到的是
An unknown error has occurred
但是,如果我转到 Facebook 页面,我会注意到正文是 posted 而不是照片附件。
如有任何解决此问题的想法,我们将不胜感激。
将对象附加到 urlParams
,就像您在
中所做的那样
let mediaIdObject = { media_fbid: mediaId };
urlParams.append(`attached_media[${i}]`, mediaIdObject);
产生一个 URL 参数,如
attached_media[0]=[object Object]
使用
urlParams.append(`attached_media[${i}]`, JSON.stringify(mediaIdObject));
相反。
我已按照 Facebook 文档请求访问令牌和 post 到 Facebook 页面。
现在,我想创建一个 post 并在其中附加一些照片 post 但 Facebook 仅 post 正文而不包括照片文件。
我是这样做的:
...
let mediaIds = [];
for (let photoUrl of photoUrls) {
let mediaUploadUrl = `https://graph.facebook.com/${pageId}/photos?url=${photoUrl}&access_token=${pageAccessToken}`;
let response = await axios.post(mediaUploadUrl);
let { id } = response.data;
if (id) {
mediaIds.push(id);
}
}
// Now that we have the mediaIds, let's attach them to the post as below:
let urlParams = new URLSearchParams();
urlParams.append("access_token", pageAccessToken);
urlParams.append("message", "Hello World");
let postUrl = `https://graph.facebook.com/${pageId}/feed`;
if (mediaIds.length > 0) {
for (let i = 0; i < mediaIds.length; i++) {
let mediaId = mediaIds[i];
let mediaIdObject = { media_fbid: mediaId };
urlParams.append(`attached_media[${i}]`, mediaIdObject);
}
}
try {
let { data } = await axios.post(postUrl, urlParams);
let postId = data.id;
} catch (e) {
done = false;
console.log(e); //An unknown error has occurred is the error message I keep getting
}
...
我一直在return得到的是
An unknown error has occurred
但是,如果我转到 Facebook 页面,我会注意到正文是 posted 而不是照片附件。
如有任何解决此问题的想法,我们将不胜感激。
将对象附加到 urlParams
,就像您在
let mediaIdObject = { media_fbid: mediaId };
urlParams.append(`attached_media[${i}]`, mediaIdObject);
产生一个 URL 参数,如
attached_media[0]=[object Object]
使用
urlParams.append(`attached_media[${i}]`, JSON.stringify(mediaIdObject));
相反。