Проблема с токеном доступа при создании тестовых пользователей Facebook - PullRequest
2 голосов
/ 20 декабря 2010

Я пытаюсь создать тестовых пользователей для своего приложения Facebook.Они объявили об этой функции в этом посте в ноябре (http://developers.facebook.com/blog/post/429), и это задокументировано здесь (http://developers.facebook.com/docs/test_users/). Я не мог найти ответ на этот вопрос в другом месте ...

Согласно документации ""Вы можете создать тестового пользователя, связанного с конкретным приложением, используя Graph API с токеном доступа к приложению. "Это ссылка на раздел" Проверка подлинности как приложение "и описание этого сценария 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

Пока чтотак хорошо. Я запустил это и получил следующее:

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

Так что теперь я хочу отправить этот токен на URL-адрес тестового пользователя Graph API:

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

Когда я это делаю(и используя Facebook PHP SDK и просто набирая его в браузере) я получаю:

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

Итак, вопросы:

Почему я получаю это сообщение об ошибке? Использую ли яневерный токен доступа (несмотря на то, что Facebook явно говорит мне использовать этот?) Нужно ли каким-то образом анализировать токен доступа?

Спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 04 января 2011

Вот некоторый рабочий код , который позволит вам создать тестового пользователя с PHP SDK.

0 голосов
/ 18 марта 2014

Я получал эту ошибку, пока не удалил некоторые параметры из примера кода, который я видел плавающим вокруг. Вот пример в Python, использующий запросы, которые мне наконец удалось получить:

# 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
0 голосов
/ 20 декабря 2010

Убедитесь, что ваш токен доступа правильно закодирован при переходе на Facebook.

...