反应 | Facebook JS API:尝试将多张图片上传到我的页面 Feed 时出现错误代码 100
React | Facebook JS API : Error code 100 when trying to upload multiple images to my page feed
在第一个函数中,我将多张图片上传到 page-id/photos
并收到包含这些图片所有 ID 的肯定响应。
然而,下一部分是我被困的地方;我现在正在尝试为我的 Facebook 页面时间线创建一个包含多张图片的 post。但是,我收到一个奇怪的错误响应,声称我已经上传了我的图片。
我什至使用 Open Graph Explorer 从 their documentation 遵循了 Facebook 自己的示例,但这只是 returns 另一个错误
发送图片的函数:
(工作没有问题)
sendFacebookImagePost(page) {
const attached_media = []
for(let i = 0; i < this.state.upload_imgsrc.length; i++) {
let reader = new FileReader();
reader.onload = (e) => {
let arrayBuffer = e.target.result;
let blob = new Blob([arrayBuffer], { type: this.state.upload_imgsrc[i].type });
let data = new FormData()
data.append("source", blob)
data.append("message", this.state.fb_message)
data.append("no_story", true)
data.append("published", true)
axios({
method: "post",
url: "https://graph.facebook.com/" + page.id + "/photos?access_token=" + page.accessToken,
data: data
})
.then(response => {
attached_media.push({media_fbid: response.data.id})
if (attached_media.length === this.state.upload_imgsrc.length) {
this.sendFacebookPost(page, attached_media)
}
})
.catch(error => {
console.log(error);
})
}
reader.readAsArrayBuffer(this.state.upload_imgsrc[i]);
}
}
发送函数post:
(这里是错误发生的地方)
sendFacebookPost(page, attached_media) {
let data = {
message: this.state.fb_message,
link: this.state.fb_link,
attached_media: attached_media
// this is what attached_media returns:
// [
// {media_fbid: response.data.id},
// {media_fbid: response.data.id}
// ]
}
axios({
method: "post",
url: "https://graph.facebook.com/" + page.id + "/feed?access_token=" + page.accessToken,
data: data
})
.then( () => this.setState({fb_successMessage: "Post successful!", fb_errorMessage: ""}) )
.catch(error => {
console.log(error);
})
}
错误代码
error: {
code: 100
error_subcode: 1366051
error_user_msg: "These photos were already posted."
error_user_title: "Already Posted"
fbtrace_id: "Cl9TUTntOZK"
is_transient: false
message: "Invalid parameter"
type: "OAuthException"
}
我对 Open Graph Explorer 的尝试
问题已解决。
出错的部分是我在图像中添加以下内容 post:
data.append("published", true)
.
显然,要在多张照片 post 中使用的图像必须先设置为 published: false
,然后才能在 post。否则,Facebook 会将其视为已上传。
在第一个函数中,我将多张图片上传到 page-id/photos
并收到包含这些图片所有 ID 的肯定响应。
然而,下一部分是我被困的地方;我现在正在尝试为我的 Facebook 页面时间线创建一个包含多张图片的 post。但是,我收到一个奇怪的错误响应,声称我已经上传了我的图片。
我什至使用 Open Graph Explorer 从 their documentation 遵循了 Facebook 自己的示例,但这只是 returns 另一个错误
发送图片的函数:
(工作没有问题)
sendFacebookImagePost(page) {
const attached_media = []
for(let i = 0; i < this.state.upload_imgsrc.length; i++) {
let reader = new FileReader();
reader.onload = (e) => {
let arrayBuffer = e.target.result;
let blob = new Blob([arrayBuffer], { type: this.state.upload_imgsrc[i].type });
let data = new FormData()
data.append("source", blob)
data.append("message", this.state.fb_message)
data.append("no_story", true)
data.append("published", true)
axios({
method: "post",
url: "https://graph.facebook.com/" + page.id + "/photos?access_token=" + page.accessToken,
data: data
})
.then(response => {
attached_media.push({media_fbid: response.data.id})
if (attached_media.length === this.state.upload_imgsrc.length) {
this.sendFacebookPost(page, attached_media)
}
})
.catch(error => {
console.log(error);
})
}
reader.readAsArrayBuffer(this.state.upload_imgsrc[i]);
}
}
发送函数post:
(这里是错误发生的地方)
sendFacebookPost(page, attached_media) {
let data = {
message: this.state.fb_message,
link: this.state.fb_link,
attached_media: attached_media
// this is what attached_media returns:
// [
// {media_fbid: response.data.id},
// {media_fbid: response.data.id}
// ]
}
axios({
method: "post",
url: "https://graph.facebook.com/" + page.id + "/feed?access_token=" + page.accessToken,
data: data
})
.then( () => this.setState({fb_successMessage: "Post successful!", fb_errorMessage: ""}) )
.catch(error => {
console.log(error);
})
}
错误代码
error: {
code: 100
error_subcode: 1366051
error_user_msg: "These photos were already posted."
error_user_title: "Already Posted"
fbtrace_id: "Cl9TUTntOZK"
is_transient: false
message: "Invalid parameter"
type: "OAuthException"
}
我对 Open Graph Explorer 的尝试
问题已解决。
出错的部分是我在图像中添加以下内容 post:
data.append("published", true)
.
显然,要在多张照片 post 中使用的图像必须先设置为 published: false
,然后才能在 post。否则,Facebook 会将其视为已上传。