2012-02-13 3 views
3

J'ai des difficultés à utiliser les autorisations pour télécharger vers un album Facebook spécifique.Téléchargement d'une image vers un album Facebook spécifique

Je suis défini sur un administrateur pour une page Facebook spécifique, mais chaque fois que j'essaie de télécharger une photo, je n'arrive pas à y accéder.

L'erreur que je reçois est:

Fatal error: Uncaught OAuthException: (#120) Invalid album id thrown

Si j'explore l'explorateur graphique à l'aide, je peux voir cet album sans jeton d'accès requis.

L'URL J'utilise est https://graph.facebook.com/albumId/photos

L'album que je suis en train de télécharger est un album dans une page Facebook, que je créé au sein de Facebook.

Les autorisations sont définies je:

  • user_photos
  • friends_photos
  • publish_actions
  • manage_pages
  • publish_stream
  • photo_upload

Toute aide appréciée.

Répondre

1

Tout d'abord, vérifier si l'utilisateur est connecté:

function getLoginStatus() { 
      FB.getLoginStatus(function (response) { 
       if (response.status === 'connected') { 
        // the user is logged in and connected to your 
        // app, and response.authResponse supplies 
        // the user's ID, a valid access token, a signed 
        // request, and the time the access token 
        // and signed request each expire 
        var uid = response.authResponse.userID; 
        var accessToken = response.authResponse.accessToken; 

        getPageAccess(); 

       } else if (response.status === 'not_authorized') { 
        // the user is logged in to Facebook, 
        //but not connected to the app 
        logIn(); 
       } else { 
        // the user isn't even logged in to Facebook. 
        logIn(); 
       } 
      }); 
     } 

ensuite obtenir la la page jeton d'accès associé à l'utilisateur:

function getPageAccess() {    
      FB.api('/PAGE_ID?fields=access_token', function (resp) { 
       var pageAccessToken = resp.access_token; 
      }); 
     } 
0

Ok, je pense avoir trouvé la solution.

Si vous allez à https://graph.facebook.com/me/accounts

Chaque compte aura son propre access_token. Lorsque vous téléchargez une image sur une page Facebook, vous devez transmettre access_token en tant que paramètre.

1

Cela semble un problème commun. Si vous voulez usurper l'identité Page Facebook (qui est, agir comme page elle-même pour le téléchargement, l'affichage et le partage), vous devez d'abord obtenir un jeton d'accès pour cette page:

  1. Émettre une requête GET à «/moi/comptes 'en utilisant l'accès utilisateur jeton
  2. boucle le jeu de résultats et rechercher la page (attention de salaire à la catégorie des biens de chaque élément, passez « application » car il est considéré comme un compte)
  3. magasin access token pour cette page.

ensuite (en utilisant PHP SDK):

$page = '432652662'; // Your page id 
$album = '128949205'; // Your album id 
$source = 'mypic.png'; 
$payload = array('source' => '@' . $source, 
    'access_token' => 'page access token'); 

// Upload photo for specific page and album 
$sdk->api("/$page/$album/photos", 'POST', $payload); 
Questions connexes