Я пытаюсь создать тестовых пользователей для своего приложения Facebook. Они объявили об этой функциональности в этом сообщении в блоге в ноябре (http://developers.facebook.com/blog/post/429), и это описано здесь ( http://developers.facebook.com/docs/test_users/ ). Я не мог найти ответ на это в другом месте …
Согласно документации, «вы можете создать тестового пользователя, связанного с конкретным приложением, используя API-интерфейс Graph с токеном доступа к приложениям». Это связано с разделом «Аутентификация как приложение» и описывает этот сценарий 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
Итак, теперь я хочу, чтобы POST этот токен на URL-адрес URL-адреса графического api:
POST /1182...18/accounts/test-users?installed=true&permissions=read_stream&access_token=1182...18|nTI...r5Q
Когда я это делаю (используя PHP PHP SDK и просто введя его в браузер), я получаю:
{ "error": { "type": "OAuthException", "message": "Invalid OAuth access token." } }
Поэтому вопросы:
Спасибо за помощь.
Вот некоторый рабочий код , который позволит вам создать тестового пользователя с PHP SDK.
Убедитесь, что ваш токен доступа правильно устарел, когда вы вернетесь в facebook.
Я получал эту ошибку, пока не удалил некоторые параметры из кода примера, который видел вокруг. Вот пример в 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