Problème d'accès à jeton tout en créant Facebook Les utilisateurs de test
-
11-10-2019 - |
Question
Je suis en train de créer des utilisateurs de test pour mon application Facebook. Ils ont annoncé cette fonctionnalité dans ce blog en Novembre (http://developers.facebook.com/blog/post/429) et il est documenté ici ( http://developers.facebook.com/docs/test_users/ ). Je ne pouvais pas trouver la réponse à cette ailleurs ...
Selon la documentation, « Vous pouvez créer un utilisateur de test associé à une application particulière en utilisant l'API graphique avec le jeton d'accès aux applications. » Ce lien renvoie vers la section "Autenticating comme une application" et décrit ce script CURL:
curl -F grant_type=client_credentials \
-F client_id=your_app_id \
-F client_secret=your_app_secret \
https://graph.facebook.com/oauth/access_token
Jusqu'à présent, si bon. J'ai couru tout cela et de ce qui suit:
access_token=1182...18|nTI...r5Q
Alors maintenant, je veux POST ce jeton au graphique api URL de l'utilisateur test:
POST /1182...18/accounts/test-users?installed=true&permissions=read_stream&access_token=1182...18|nTI...r5Q
Quand je fais cela (à la fois en utilisant le SDK PHP Facebook et juste taper dans le navigateur) j'obtenir:
{
"error": {
"type": "OAuthException",
"message": "Invalid OAuth access token."
}
}
Ainsi, les questions sont les suivantes:
Merci pour votre aide.
La solution
Voici quelques code de travail qui vous permettra de créer un utilisateur de test avec le SDK PHP.
Autres conseils
Assurez-vous que jeton d'accès est correctement urlencoded lors du passage de retour à facebook.
je recevais cette erreur jusqu'à ce que j'ai enlevé quelques paramètres de l'exemple de code que j'ai vu flotter. Voici un exemple en python utilisant des requêtes que j'ai finalement réussi à faire fonctionner:
# Get the access token
resp = requests.get(
'https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={app_id}&client_secret={app_secret}'.format(
app_id=APP_ID, # Your app id (found in admin console)
app_secret=APP_SECRET # Your app secret (found in admin console)
)
)
# Parse the token
token = resp.content.split('=')[-1]
# Create the user
data = {'access_token': str(token)}
resp = requests.post(
'https://graph.facebook.com/{app_id}/accounts/test-users?installed=true'.format(
app_id=APP_ID
),
data=data
)
print resp.content