Pregunta

Estoy intentando crear usuarios de prueba para mi aplicación de Facebook. Anunciaron esta funcionalidad en esta entrada del blog en noviembre (http://developers.facebook.com/blog/post/429) y se documentan aquí ( http://developers.facebook.com/docs/test_users/ ). No pude encontrar la respuesta a esta otra parte ...

De acuerdo con la documentación, "Usted puede crear un usuario de prueba asociado con una aplicación en particular mediante la API de gráficos con el token de acceso de la aplicación." Esto enlaza con la sección "Autenticating como una aplicación" y describe este 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

Hasta ahora, todo bien. Me encontré con esto y sale el siguiente:

access_token=1182...18|nTI...r5Q

Así que ahora yo quiero escribir esto contadores a la URL de usuario de prueba gráfica API:

POST /1182...18/accounts/test-users?installed=true&permissions=read_stream&access_token=1182...18|nTI...r5Q  

Cuando hago esto (tanto mediante el Facebook PHP SDK y simplemente escribiendo en el navegador) me sale:

{
    "error": {
      "type": "OAuthException",
      "message": "Invalid OAuth access token."
    }
}

Así que las preguntas son:

  • ¿Por qué aparece este mensaje de error?
  • ¿Estoy utilizando la conexión incorrecta de fichas (a pesar Facebook me dice explícitamente para utilizar este?)
  • ¿Es necesario analizar el token de acceso de alguna manera?

    Gracias por su ayuda.

  • ¿Fue útil?

    Solución

    Aquí hay un código trabajo que le permitirá crear un usuario de prueba con el SDK de PHP.

    Otros consejos

    Asegúrese de que su token de acceso se urlencoded adecuadamente cuando se pasa de nuevo a facebook.

    Me estaba recibiendo este error hasta que me quité algunos parámetros de código de ejemplo que vi flotando alrededor. Este es un ejemplo en Python usando peticiones que por fin he conseguido trabajo:

    # 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
    
    Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top