Я пытаюсь написать несколько тестов для публикации и комментирования в Facebook из моего приложения. Для этого я создаю двух тестовых пользователей, как описано в официальном документе , используя секрет моего приложения. Затем я пытаюсь создать пост в качестве первого пользователя и оставить комментарий в качестве второго пользователя. В то время как первый шаг завершается успешно, я получаю сообщение об ошибке:
{"error":{"message":"(#100) Error finding the requested story","type":"OAuthException"}}
Я также попытался получить доступ к созданному сообщению следующими способами:
- Непосредственно по id, используя
https://graph.facebook.com/<post id>
url, с токенами доступа от обоих пользователей, моего приложения и моей личной учетной записи fb.
- Просмотр канала первого пользователя по
https://graph.facebook.com/<user id>/posts
URL-адресу, также со всеми возможными токенами доступа.
В каждом случае я получаю только «ложь» в ответ. Поэтому я предполагаю, что все сообщения от тестового пользователя не являются постоянными и недоступны. Я прав или, может быть, я делаю что-то не так? Можно ли тестировать сообщения и комментарии с тестовыми пользователями, а не с реальными аккаунтами?
Я дал не полное представление о том, как именно написан тест, но в этом случае взаимодействие API-интерфейса графа довольно сложное, и я не могу точно сказать, что здесь уместно. Не стесняйтесь просить больше информации в комментариях.
ОБНОВЛЕНИЕ подробное воспроизведение
Вот как я получаю токен доступа к приложению:
$ curl 'https://graph.facebook.com/oauth/access_token?client_id=<app_id>&client_secret=<app_secret>&grant_type=client_credentials'
access_token=<app_token>
И создать тестового пользователя:
$ curl 'https://graph.facebook.com/<app_id>/accounts/test-users?installed=true&permissions=publish_stream&method=post&access_token=<app_token>'
{"id":"100003312676861","access_token":"<user1_token>","login_url":"https:\/\/www.facebook.com\/platform\/test_account_login.php?user_id=100003312676861&n=mFdbI0ThjAcqEmR","email":"hrputis_fergiesen_1325848209\u0040tfbnw.net","password":"<user1_pass>"}
Тогда я пытаюсь создать сообщение, и это успешно:
curl 'https://graph.facebook.com/100003312676861/feed?message=hello&method=post&access_token=<user1_token>'
{"id":"100003312676861_107495629370859"}
Но когда я пытаюсь получить доступ к созданному сообщению, я не могу сделать это ни с помощью приложения, ни с токеном пользователя:
curl 'https://graph.facebook.com/100003312676861_107495629370859?access_token=<user1_token>'
false
curl 'https://graph.facebook.com/100003312676861_107495629370859?access_token=<app_token>'
false
И не отображается в ленте пользователя.
curl 'https://graph.facebook.com/100003312676861/feed?access_token=<user1_token>'
{"data":[]}
curl 'https://graph.facebook.com/100003312676861/feed?access_token=<app_token>'
{"data":[]}
UPDATE2 Доступ к токену:
Для токена приложения linter правильно распознает идентификатор и имя приложения.
Для токена пользователя linter укажите следующую информацию:
App ID: <correct app ID and name>
User ID: Unknown
Issued: 1326186000 : 1:00 am Jan 10 2012
Expires: 1326189600 : 2:00 am Jan 10 2012
Valid: True
Origin: Unknown
Scopes: create_note photo_upload publish_stream share_item status_update video_upload