web-dev-qa-db-fra.com

Facebook Graph API v3.1 Limitations des autorisations d'accès aux jetons pour les développeurs

Comme vous le savez, Facebook a mis à niveau son API vers la V3.1 et tue lentement les anciennes API et applications. Nous devons donc migrer vers cette nouvelle API où ils ont pris une décision difficile, à la fois bonne sur le site de SPAM mais également pour les développeurs.

Rappel: Graph API v2.7 sera obsolète le 5 octobre 2018. Veuillez utiliser le API Upgrade Tool pour comprendre l'impact que cela pourrait avoir sur votre application. Pour plus de détails voir le changelog

Maintenant, j'ai créé une nouvelle application FB avec certains paramètres, comme indiqué dans les captures d'écran ci-dessous: Publier sur mes propres pages, pas de profil , mais des erreurs sont mentionnées ci-dessous.

 enter image description here

 enter image description here

 enter image description here

 enter image description here

 enter image description here

Et puis j'ai utilisé le code ci-dessous pour poster sur ma propre page où je suis le propriétaire du même compte sur lequel j'ai créé cette application.

<?php
$page_access_token = 'GENERAL_ACCESS_TOKEN';
$page_id = 'OWN_PAGE_ID';
// From https://developers.facebook.com/tools/Explorer

$data['message'] = "Text_Message";
//$data['picture'] = "http://www.example.com/image.jpg";
//$data['link'] = "http://www.example.com/";
//$data['caption'] = "Caption";
//$data['description'] = "Description";

$data['access_token'] = $page_access_token;
$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
echo $return;
curl_close($ch);
?>

Maintenant, quand je lance le code supérieur, j'ai l'erreur ci-dessous ...

{"error":{"message":"(#200) Requires either publish_to_groups permission and app being installed in the group, or manage_pages and publish_pages as an admin with sufficient administrative permission","type":"OAuthException","code":200,"fbtrace_id":"XXXXXXXXX"}}

Maintenant, ma question concerne les endroits où je peux autoriser mes applications à utiliser cette autorisation, car là où j’autorise tout, je n’ai pas vu ces noms (publish_to_groups, manage_pages et publish_pages etc.), comme indiqué dans la dernière capture d’écran.

Remarque: Tout ce que j'ai créé et le code maintenant, j'ai besoin d'une solution fonctionnant avec la nouvelle version de l'API 3.1.

METTRE À JOUR:

Mon ami m'a dit d'autoriser toutes les autorisations pour que mon code fonctionne comme indiqué dans la capture d'écran ci-dessous, mais je ne suis pas en mesure d'afficher ces autorisations dans mes applications. J'ai besoin de tout ça. Comment les obtenir?

 enter image description here

3
Muhammad Hassan

Il me semble que vous utilisez un jeton d'accès utilisateur . Pour obtenir un jeton d'accès à une page, vous devez appeler le noeud final:

https://graph.facebook.com/v3.1/{user-id or me}/accounts

pour obtenir la liste des pages et les jetons d’accès pour chacune d’elles.

Ou: 

https://graph.facebook.com/v3.1/{page-id}?fields=access_token

si vous connaissez déjà la page sur laquelle vous souhaitez poster.

Lorsque vous obtenez un jeton d'accès à la page, vous pouvez appeler le noeud final feed.

Jetez un oeil ici: https://developers.facebook.com/docs/pages/access-tokens

1
DiClem

J'ai essayé beaucoup de choses et puis j'ai trouvé sur Facebook Developers Guide que, après la nouvelle mise à jour, personne ne peut obtenir toutes les autorisations indiquées ci-dessous si les applications sont mises en ligne. Pour obtenir toutes ces autorisations après la mise en ligne de vos applications, vous devez demander des autorisations de révision. Sinon, vous pouvez obtenir toutes les autorisations librement en mode de développement, mais cela ne fonctionnera que pour vous.

 enter image description here

Comme vous savez que pour obtenir toutes les autorisations dans vos applications pour votre propre usage, vous pouvez les obtenir sans passer en revue vos applications ou quoi que ce soit. Vous pouvez voir un paramètre général d'une application ci-dessous.

 enter image description here

Vous devez simplement activer vos applications en mode de développement en désactivant le mode en direct, comme indiqué dans les captures d'écran ci-dessous et supérieures.

 enter image description here

Après cela, allez simplement dans Graph API Explorer et cliquez sur le bouton "Get Token", puis sélectionnez "Get User Access Token" (Obtenir un jeton d'accès utilisateur) et vous obtiendrez la fenêtre contextuelle, comme indiqué dans la première capture d'écran de cette réponse, où vous pourrez sélectionner vos portées souhaitées et cliquez sur "Get Access Token". Il créera un POPUP sur lequel vous aurez besoin de votre permission, puis vous renverra le jeton d'accès. ( Vous pouvez étendre votre jeton d’accès à 60 jours )

Remarque: ce jeton s'affichera sur votre page. Il ne sera visible que parce que vos applications ne sont pas en direct. Toutes les activités effectuées par vos applications sont uniquement destinées à vous.

1
Muhammad Hassan