将图像上传到粉丝页面问题

时间:2011-07-28 16:58:40

标签: actionscript-3 facebook graph air facebook-page

..我正在尝试使用FaceBookDesktop api将图像上传到FB ...我是 使用粉丝页面ID上传图片,但总是发给我自己的 专辑:/

有人有点想法吗?

干杯

4 个答案:

答案 0 :(得分:1)

var values:Object = {message:String(nomFotoASubir), fileName:'FILE_NAME',image: sub};
FacebookDesktop.api('/'+albumID+'/photos', handleUploadComplete, values,'POST');    

与jBit的答案类似,我真的不知道第一个'/'是否需要...... Anoth。 可能导致错误的是您需要页面访问令牌而不是您的用户访问令牌。 您可以轻松获取此访问令牌,请参阅此说明和链接...

  

页面访问标记

要以页面而不是当前用户身份执行以下操作,您必须使用Page的访问令牌,而不是通常用于读取Graph API对象的用户访问令牌。可以通过使用manage_pages权限向/ USER_ID / accounts发出HTTP GET来检索此访问令牌。这将返回用户具有管理访问权限的页面列表(包括应用程序配置文件页面)以及这些页面的access_tokens。或者,您可以通过使用manage_pages权限向/ PAGE_ID?fields = access_token发出HTTP GET来获取单个特定页面的页面访问令牌,如上所述。除非另有说明,否则发布到页面还需要publish_stream权限。

link to developers page

如果某些答案是正确的,请将其标记为正确,如果您有其他问题,请告诉我们,以便我们帮助您解决问题以及其他人类似问题......

答案 1 :(得分:0)

您是否尝试过发布到相册(即使用目标相册ID)而不是粉丝页面本身?

var params:Object = {image:bitmap, fileName:'FILE_NAME'};
Facebook.api('ALBUM_ID/photos', myCallbackFunction, params, "POST");

答案 2 :(得分:0)

默认情况下,将图像上传到图像将转到当前登录用户的页面。 您需要为您的粉丝页面获取一个身份验证令牌,该令牌授权所有应用用户作为应用的上传者。因此,您将为用户和应用程序提供令牌。如果您使用了应用令牌,则可以将其上传。

答案 3 :(得分:0)

我有这个问题,我希望能够将图片上传到用户照片和我的应用帐户相册。

我的意思是图片将始终上传到Facebook自动创建的相册中,并附上您的应用名称。在您的帐户和贷款用户帐户中,一旦他们授予您的应用权限。

所以知道这一点我做了以下。

为了管理permisions,我使用了一个具有所需权限的数组,我使用了这个

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)并进行了更改 (“我/照片”)用于(“/”+ albumId +“/ photos”),以便能够将照片上传到我的Facebook帐户中的任何相册相册ID。 如果您只想上传到应用相册,可以使用(“我/照片”),但我喜欢 (“/”+ 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

我希望这能帮助你们 谢谢阅读 :)