Domanda

Sto cercando di creare utenti di test per la mia applicazione Facebook. Hanno annunciato questa funzionalità in questo post del blog nel mese di novembre (http://developers.facebook.com/blog/post/429) ed è documentato qui ( http://developers.facebook.com/docs/test_users/ ). Non riuscivo a trovare la risposta a questa altrove ...

In base alla documentazione "è possibile creare un utente di prova associato ad una particolare applicazione utilizzando l'API Grafico con il token di accesso di applicazione." Questo link alla sezione "Autenticating come applicazione" e descrive questo 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

Fin qui, tutto bene. Ho eseguito questo e ottengo il seguente:

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

Quindi ora voglio POST questo token al grafico api URL utente di prova:

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

Quando faccio questo (sia utilizzando il Facebook PHP SDK e solo digitando nel browser) ottengo:

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

Quindi le domande sono:

  • Perché mi appare questo messaggio di errore?
  • I Am utilizzando l'accesso sbagliata del token (nonostante Facebook mi dice in modo esplicito di utilizzare questo?)
  • Devo analizzare il token di accesso in qualche modo?

    Grazie per il vostro aiuto.

  • È stato utile?

    Soluzione

    Here is some working code that will allow you to create a test user with the PHP SDK.

    Altri suggerimenti

    Ensure your access token is properly urlencoded when passing back to facebook.

    I was getting this error until I removed some parameters from example code I saw floating around. Here is an example in python using requests that I finally managed to get working:

    # 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
    
    Autorizzato sotto: CC-BY-SA insieme a attribuzione
    Non affiliato a StackOverflow
    scroll top