【问题标题】:Facebook Photo Upload to a Page AlbumFacebook 照片上传到页面相册
【发布时间】:2013-12-09 17:59:30
【问题描述】:

我使用以下网址将照片上传到 Facebook 页面相册

<form id ="uploadForm" method="post" enctype="multipart/form-data">
      <h4>UPLOAD PHOTO</h4>

      <fieldset>
       <input id="name" type="text" />
      </fieldset>
      <fieldset>
       <textarea id="photoDtls"></textarea>
      </fieldset>
      <fieldset>
       <input name ="source" type="file"  />
      </fieldset>
      <input type="submit">
      </form>

我使用以下 javascript sdk 代码

FB.getLoginStatus(function(response) {
          if (response.status === 'connected') {
              accessToken = response.authResponse.accessToken;
                  $('#uploadForm').attr('action','https://graph.facebook.com/photos/*page_album_id*?access_token='+accessToken);
                });
          } else if (response.status === 'not_authorized') {
              alert('not autherized');
              FB.login(function(response){
                alert('Permission granted');                
              },{scope: 'email,user_birthday,publish_stream,photo_upload'});
          } else {
              alert('not logged in');
            // the user isn't logged in to Facebook.
          }
         });

我在上传照片时收到了回复,但我没有看到照片已上传到我的相册。有没有办法通过以下id或post id查看照片?这里可能出了什么问题?

{

    "id": "xxxxxxxxxxxxxxxxxxxxx",
    "post_id": "xxxxxxxx_xxxxxxxxxxxxx"

}

【问题讨论】:

  • 当您访问 facebook 上的 id 或 post_id 时,您会看到什么?比如 www.facebook.com/ - 有你的照片吗?
  • graph.facebook.com/_post-id_ 给我{ "error": { "message": "Unsupported get request.", "type": "GraphMethodException", "code": 100 } }
  • 你用这个例子吗:developers.facebook.com/blog/post/498?我有一个类似的问题,但用 php 解决了 - 因为我还需要将图片保存在服务器上:stackoverflow.com/questions/7340949/… - 有图像的名称 image 而不是 source
  • 啊,现在我看到了错误。您想将图片上传到粉丝专页相册,但您使用的是用户访问令牌。那是行不通的。你需要它的页面访问令牌。
  • 好,我把它作为答案发布了:)

标签: javascript jquery facebook-graph-api file-upload facebook-javascript-sdk


【解决方案1】:

要将照片上传到粉丝专页,您需要使用粉丝专页令牌而不是用户令牌。

要获得此令牌,您需要授予 manage_pages 权限 - 仅此而已。然后,您获得粉丝专页令牌并将其保存在服务器上的某个位置,因为您需要将照片上传到您的粉丝专页。

这意味着你不能用 javascript 来做。因为这样每个人都会看到你的粉丝专页访问令牌。

因此,您必须将照片发送到您的网络服务器,然后将其上传到您的粉丝专页相册。

【讨论】:

  • 你是对的。但是当我使用应用程序访问令牌作为 access_token 时,我收到一条错误消息A user access token is required to request this resource 我在连接应用程序时要求scope: 'email,user_birthday,publish_stream,photo_upload'}
  • 我更新了答案。稍后当我在家时,我也可以发布一个示例 - 因为我在 facebook 上有一个正在运行的应用程序作为页面选项卡,它完全符合您的要求。但它的 atm 坏了,因为我更改了密码,但没有更新我的访问令牌;)facebook.com/PowerPhotoUploader/app_300214813374674
  • stackoverflow.com/questions/20490801/… 你对此有什么想法吗? manage_pages 只允许管理员用户上传到他们的页面
  • 您只需要代表管理员用户发帖。这就是为什么我说您需要将 access_token 保存在您的服务器上并使用您的服务器而不是浏览器进行开放图形调用。
猜你喜欢
  • 1970-01-01
  • 2011-06-22
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
相关资源
最近更新 更多