#json #python-3.x #facebook-graph-api #python-requests #token
Вопрос:
Я пытаюсь создать простой скрипт на python, который отправляет текстовое сообщение на страницу facebook с помощью запросов.
На самом деле мне удалось добиться успеха в этом подвиге, однако, когда я добавляю ту же логику в свой более крупный проект, определенный запрос возвращает другой json.
Согласно этой странице https://developers.facebook.com/docs/pages/access-tokens Я могу обменять токен недолговечного пользователя, который я генерирую в инструменте graph explorer, на долгоживущий, который длится 60 дней. Это работало на меня до сих пор. Когда я запускаю те же функции, те же переменные в другом файле .py, который также включает другую логику, запрос не возвращает эту строку:
«expire_in»: СЕКУНДЫ-ДО-ИСТЕЧЕНИЯ СРОКА ДЕЙСТВИЯ ТОКЕНА
И, конечно, позже, если я продолжу логику и использую возвращаемый токен (который тот же самый), скажем, для функции make_post, запрос печатается
{'error': {'message': '(#200) If posting to a group, requires app being installed in the group, and \n either publish_to_groups permission with user token, or both manage_pages \n and publish_pages permission with page token; If posting to a page, \n requires both manage_pages and publish_pages as an admin with \n sufficient administrative permission', 'type': 'OAuthException', 'code': 200, 'fbtrace_id': 'AqYMMeOcOniWAGgEEtsEURs'}
Почему он не возвращается успешно, токен пользователя не истек и у него есть необходимые права. Кроме того, я протестировал это в меньшем файле .py, и это сработало.
Еще одна вещь, которую я узнал здесь https://developers.facebook.com/support/bugs/523165725596520/?join_id=f1ff8392b49675c вот что другие люди на самом деле сообщили о той же проблеме, но она была закрыта как «задуманная по замыслу», однако информации о решении нет.
Запуск запроса в моем браузере также работает неправильно.
У тебя есть какие-нибудь идеи? Я совершенно ничего не понимаю. Заранее большое вам спасибо
Комментарии:
1. Единственное, о чем говорится в отчете об ошибке, — это то, что вы не получаете
expires_in
возврат, если срок действия токена не истек по умолчанию. Пока у вас все еще есть токен, это имеет мало общего с сообщением об ошибке, которое вы процитировали.
Ответ №1:
Как сказал @CBroe в комментарии, expires_in не имел никакого отношения к моей ошибке. Токен, который он возвращает, если он действителен. Проблема, с которой я столкнулся позже, была связана с URL-адресом, который я анализировал