首先,我知道有很多关于同一主题的问题和答案,但它们似乎都不适合我...这可能是因为其中许多是2011年或2012年,以及FB API可能已经改变,方法可能已经过时了......让我简要总结一下我的问题:
我想做什么?
将存储在服务器中的PNG或JPEG照片上传到用户的墙上。
我该怎么做?
使用Facebook的Javascript API,大概是通过调用“FB.api()”。我一直在处理“FB.ui()”,我已成功上传了一些东西,但我不知道是否可以使用“ui()将简单的照片上传到用户的墙上“方法(希望如此!)。
我现在在做什么?
这是我现在正在运行的代码:
CocoonJS.Social.Facebook.api('/me/photos', 'post',
{
message:'Luke: I am your Guinness',
access_token: game.data.access_token,
url:'http://www.theagencyonline.co.uk/wp-content/uploads/2013/09/Darth-Vader-Guinness.gif'
}, function(response){
if (!response || response.error) {
alert('Error occured');
} else {
alert('Post ID: ' + response.id);
}
});
我得到了什么?
奇怪的是,在调用此函数后,会弹出一个带有“Post ID”的警报,其中包含一个很大的数字(实际的帖子ID,我猜)。但是,墙上没有任何内容。我正在使用自己的帐户来测试它,我无法看到发布的帖子。
可能与问题有关的凌乱的事情(或不是):
传说讲述用户的“访问令牌”:有些人认为这是关键参数,有些人甚至不使用它。
有些人认为无法通过“/ me / photos”上传照片,而是通过“/ {user_id} / photos”。
我的FB应用程序仍处于沙盒模式(未公开)。
最后,一个简单的问题可以解决整个事情......我已经能够通过“FB.ui()”而不是“FB.api()”发布内容,但我不能找到一种通过“ui()”发布照片的方法:你知道它是否可能?如果是这样,怎么办?
提前感谢您的时间和精力! :)
答案 0 :(得分:0)
在https://developers.facebook.com/docs/graph-api/reference/v2.0/user/photos/#publish的Facebook文档指定您应该使用编码的花括号来包装url
参数内容:
url=%7Bimage-url%7D
奇怪的是你得到了photo_id
。如果您查询此photo_id
会怎样?
另外,请检查应用的默认发布设置。从FB为privacy
字段引用:
如果未提供,则默认为授予应用的隐私级别 在登录对话框中。此字段不能用于设置更开放 隐私设置比授予的设置。