Depuis le dernier changement sur Facebook concernant les appsecret_proof: https://developers.facebook.com/docs/reference/api/securing-graph-api/ , nous ne pouvons toujours pas télécharger les rapports de performance, même après l'activation/désactiver les fonctionnalités des paramètres avancés dans notre application, ou appliquer le code comme décrit dans leur document.
Nous obtenons constamment cette erreur:
{"error": {"message": "appsecret_proof incorrect fourni dans l'argument de l'API", "type": "GraphMethodException", "code": 100}}
et j'ai ouvert un bug confidentiel mais personne ne me répond avec une réponse.
Je ne sais vraiment pas quoi de plus pourrions-nous essayer?
L'erreur est (certainement basée sur mon expérience) presque certainement correcte; cela signifie que vous prouvez un appsecret_proof invalide avec votre appel d'API
En supposant que vous utilisiez le SDK PHP standard sans modifications, les raisons les plus probables sont:
Une autre cause potentielle de l'erreur "Invalid appsecret_proof ..." est un jeton d'accès utilisateur qui n'est pas associé à une application. Si vous générez un jeton d'accès utilisateur à l'aide de l'explorateur de graphes, veillez à sélectionner une application dans le menu déroulant situé dans le coin supérieur droit. Sinon, vous allez générer des jetons qui ne fonctionnent que dans l'explorateur d'API graphique.
J'ai déposé un bogue avec le SDK Python avant que je ne prenne mon erreur. Les interfaces graphiques sont le diable.
Il y a un bug dans le SDK de Facebook. Après 20 heures d’essais pour essayer de déboguer mon propre code (ce qui n’a pas posé de problème!), J’ai commenté ceci dans base_facebook.php:
/* Commented out by SJ
if (isset($params['access_token'])) {
$params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
}
*/
Et tous les problèmes sont partis!
Aucun bug dans la dernière version du SDK facebook PHP . Vous devez créer appsecret_proof conformément à la documentation:
$appsecret_proof= hash_hmac('sha256', $access_token, $app_secret);
puis transmettez-le en tant que paramètre à votre appel à l’API.
Voir les documents ici: https://developers.facebook.com/docs/graph-api/securing-requests/
Une fois que j'ai fait cela, tout était bon et je n'ai pas eu à pirater base_facebook.php
Cette erreur est due au jeton correct. C'est peut-être parce que vous utilisez un compte différent pour configurer l'application Web et l'application mobile pour la configuration de Facebook. Les deux comptes devraient être identiques.
L'ID de l'application doit être identique pour votre application mobile et votre application Web.
Cette erreur résulte de la définition d'un jeton d'accès incorrect. Par exemple, publier dans un album de pages en utilisant le jeton d'accès d'un utilisateur (administrateur). J'ai presque toujours résolu cette erreur en définissant le jeton d'accès approprié
Si cette erreur est un comportement inattendu, vous avez peut-être coché un paramètre de votre application pour l'exiger. Décochez-la et vous devriez cesser de recevoir cette erreur. Ce paramètre se trouve dans Paramètres -> Avancé et s’appelle "App Secret Proof pour les appels de l’API du serveur". Définissez cela sur NO.
À partir de maintenant, ce paramètre figure sur cette page (assurez-vous de mettre votre ID d'application dans l'URL): https://developers.facebook.com/apps/YOUR-APP-ID/settings/advanced/
Notez que ce n’est pas une solution universelle, mais uniquement pour les personnes qui ne souhaitent pas ce comportement.
Dans mon cas, je devais définir le jeton d'accès par défaut via la méthode: setDefaultAccessToken()
J'ai utilisé un jeton généré dans l'outil de développement GraphApi mais je ne suis pas passé à l'application appropriée. Il a été résolu en changeant l'application en une seule et en utilisant un jeton régénéré.
assurez-vous que votre paramètre est correct fbappid + fbappsecret
cette erreur se produit lorsque ceux-ci ne sont pas réglés correctement
comme vous avez 2 applications un développement et une production
et vous bousiller les codes, vérifiez ces deux
Juste pour les personnes ayant le même problème;
Lorsque vous définissez Client OAuth Login sur "oui" sur facebook, vous devez indiquer/ les URI de redirection OAuth valides . Sinon, facebook lance exactement la même erreur.
Peut-être que quelque chose ne va pas avec votre jeton d'accès, vous avez besoin du style Gestionnaire de projet. Vous pouvez obtenir le jeton à partir du contenu de https://business.facebook.com/settings/system-users/ {sys_user_id}? business_id = {bussiness_id} avec regex r'"accessToken":"([\d|\w]+)","context"'
Je sais que c’est une vieille question, mais j’ai résolu la mienne en changeant l’Application pour qu’elle devienne l’application appropriée avec laquelle je devrais générer un jeton d’accès. Par exemple. de Project1
à Project2
.