【发布时间】:2011-07-28 16:58:40
【问题描述】:
.. 我正在尝试使用 FaceBookDesktop api for flash 将图像上传到 FB .... 我是 使用粉丝页面 id 上传图片,但总是去我自己的 专辑:/
有人有什么想法吗?
干杯
【问题讨论】:
标签: actionscript-3 facebook graph air facebook-page
.. 我正在尝试使用 FaceBookDesktop api for flash 将图像上传到 FB .... 我是 使用粉丝页面 id 上传图片,但总是去我自己的 专辑:/
有人有什么想法吗?
干杯
【问题讨论】:
标签: actionscript-3 facebook graph air facebook-page
var values:Object = {message:String(nomFotoASubir), fileName:'FILE_NAME',image: sub};
FacebookDesktop.api('/'+albumID+'/photos', handleUploadComplete, values,'POST');
类似于 jBit 的答案,我真的不知道是否需要第一个'/'... Anoth。 可能导致错误的事情是您需要页面访问令牌而不是您的用户访问令牌。 您可以轻松获取此访问令牌,请参阅此说明和链接...
页面访问令牌
要以 Page 而非当前用户的身份执行以下操作,您必须使用 Page 的访问令牌,而不是通常用于读取 Graph API 对象的用户访问令牌。可以通过向具有 manage_pages 权限的 /USER_ID/accounts 发出 HTTP GET 来检索此访问令牌。这将返回用户具有管理访问权限的页面列表(包括应用程序配置文件页面),以及这些页面的 access_tokens。或者,您可以通过向具有 manage_pages 权限的 /PAGE_ID?fields=access_token 发出 HTTP GET 来获取单个特定页面的页面访问令牌,如上所述。除非另有说明,否则发布到页面还需要 publish_stream 权限。
如果某些答案是正确的,请将其标记为正确,如果您有其他问题,请告诉我们,以便我们帮助您解决问题和其他人类似的问题...
【讨论】:
您是否尝试过发布到专辑(即使用目标专辑 ID)而不是粉丝页面本身?
var params:Object = {image:bitmap, fileName:'FILE_NAME'};
Facebook.api('ALBUM_ID/photos', myCallbackFunction, params, "POST");
【讨论】:
默认情况下,上传图片会转到当前登录用户的页面。 您需要为您的粉丝页面获取一个身份验证令牌,该令牌授权所有应用用户作为应用的上传者。因此,您将拥有用户和应用程序的令牌。如果您使用应用令牌,您可以上传它。
【讨论】:
我遇到了这个问题,我希望能够将图片上传到记录的用户照片和我的应用帐户相册。
我的意思是图片将始终上传到 facebook 使用您的应用名称自动创建的相册中。在您的帐户和登录的用户帐户中,一旦他们授予您的应用权限。
所以知道了这一点,我做了以下操作。
为了管理权限,我使用了具有所需权限的数组,我使用了这个
var permissions:Array = new Array("publish_stream", "user_photos" , "publish_actions");
FacebookDesktop.login(onLogin, permissions);
登录完成后,我可以使用此上传图片
用于上传照片到已登录的用户相册
// photoBitmap is my image loaded and placed in a Bitmap var
// photoMessage is an string with the message you want to show in the image
// fileName is an string with the name you want to use for the image
var photoParams:Object = {image: photoBitmap, message: photoMessage, fileName: photoName};
FacebookDesktop.api("me/photos", uploadCompleteHandle, photoParams, "POST");
function uploadCompleteHandle(success:Object, fail:Object):void{
if(success){
trace("Image uploaded successfuly");
}else{
trace("Fail uploading image");
}
}
为了将图像上传到应用程序帐户相册,我确实使用了这个:
var photoParams:Object = {image: photoBitmap, message: photoMessage, fileName: photoName, access_token: accessToken};
FacebookDesktop.api("/" + albumId + "/photos", uploadCompleteHandle, photoParams, "POST");
private function uploadCompleteHandle(success:Object, fail:Object):void{
if(success){
trace("Image uploaded successfuly");
}else{
trace("Fail uploading image");
}
}
请注意,它的变化是我添加了一个额外的参数(access_token)并更改 ("me/photos") 让 ("/" + albumId + "/photos") 能够将照片上传到我的 Facebook 帐户中的任何相册,使用专辑 ID。 如果你只想上传到应用相册你可以使用("me/photos"),但我喜欢 ("/" + albumId + "/photos") 因为我可以选择不同的相册而不是 Facebook 自动创建的相册
要找到相册 ID,只需转到您在 Facebook 中的相册,然后在页面末尾您会看到如下内容: (https://www.facebook.com/media/set/?set=a.411960374564668.85712.100120829275312&type=3&l=216e24dddf) 专辑ID是这部分100120829275312
对于此代码工作,您需要一个 access_token。得到一个你需要去 您在 Facebook 中的应用程序设置并添加 Open Graph 协议
在创建 Open Graph 协议时,为您的令牌选择此选项
动作类型 -> 发布
对象 -> 文章
当您选择操作类型时,请点击正确的链接(“获取代码”)
您会看到一个窗口,其中包含许多用于不同情况的代码。在那些代码里面 你可以看到 access_token 的值,是这样的
AAAGl5aaLlYYBAGqWHMGbxmasf354R15qXf12xAfOBFskr3OZBSEPw7H7rGt9bH4ZCwHS7Eoft9m8q91NYqzY3WOoGHYDnEgybsjONPNSoo8CZB7jdfsfsB
希望对大家有帮助 谢谢阅读 :)
【讨论】: