#facebook-graph-api #instagram #instagram-api #instagram-graph-api
Вопрос:
Я создаю приложение, которое автоматически публикует контент в instagram. Но мне нужно опубликовать контент для новых пользователей в моем приложении, например: новый пользователь вводит свое «имя пользователя», и мое приложение опубликует контент для этого нового пользователя.
В этом случае я получил идентификатор учетной записи от нового пользователя в нижней конечной точке.
https://graph.facebook.com/v10.0/business_id_from_my_dev_account/fields=business_discovery.username(<new_user_name>){username,website,name,ig_id,id}
После запроса я поймал businnes_id_from_new_user из ответа[‘business_discovery’][‘идентификатор’]
При попытке создать контейнер публикации с использованием этого нового пользователя «businnes_id_from_new_user» я получаю сообщение об ошибке :
URL: https://graph.facebook.com/v10.0/**businnes_id_from_new_user**/сми?access_token=<access_token>amp;image_url=<public_image_url>amp;caption=texto
Ошибка: Неподдерживаемый запрос на публикацию. Объект с идентификатором «businnes_id_from_new_user» не существует, не может быть загружен из-за отсутствия разрешений или не поддерживает эту операцию. Пожалуйста, ознакомьтесь с документацией Graph API по адресу https://developers.facebook.com/docs/graph-api.
Из-за этой ошибки я считаю, что разрешение на добавление на странице разработчика facebook должно быть устранено, но для каждого нового пользователя я должен предоставлять вручную??
Наблюдения:
- У моих новых пользователей, возможно, нет страниц в Facebook.
- Во всех запросах я использую токен доступа от business_id_from_my_dev_account
Я вошел в систему Facebook с помощью javascript SDK и получил токен доступа (я имитирую конечного пользователя, который будет использовать мое приложение). При этом входе в систему я использовал следующие разрешения
FB.login(function(response){
console.log(response)
}, {scope: 'public_profile,ads_management,business_management,instagram_basic,instagram_content_publish,pages_read_engagement,manage_pages,pages_show_list'});
Вход в систему работал правильно, и я принял разрешения через страницу facebook. Однако, когда я пытаюсь получить идентификатор страницы facebook для этого пользователя (используя его токен доступа) Я получаю пустой ответ.
ПОЛУЧИТЕ: https://graph.facebook.com/v10.0/me/accounts?access_token=<token_from_new_user>
Response: {
"data": []
}
Может ли кто-нибудь сказать мне, почему я получаю пустой ответ?
Примечание. У вошедшего в систему пользователя уже есть страница Facebook, и разрешения уже включены.
Комментарии:
1. Какие разрешения вы запросили у пользователя? Вы просили о чем-нибудь? Вы вообще заставили их войти в ваше приложение в первую очередь? Или вы думали, что могли бы опубликовать, основываясь только на том факте, что вы получили идентификатор учетной записи из конечной точки Business Discovery?
2. Я считаю, что именно эту часть я делаю неправильно (пытаюсь публиковать только с business_id нового пользователя). Я предполагаю, что мне нужно запросить какое-то разрешение, но я не нашел четкого потока в документации, который показывает мне, что я должен делать, чтобы запускать автоматические публикации для нового пользователя, зарегистрированного в моем приложении.
3. Я до сих пор не смог спросить разрешения. Я пытаюсь запросить разрешения и получить действительный токен по логину через URL-адресом: <a rel=»noreferrer noopener nofollow» href=»https://api.instagram.com/oauth/authorize?client_id=amp;redirect_uri=http://localhost:8000/amp;scope=user_profile,user_mediaamp;response_type=code» rel=»nofollow noreferrer»> api.instagram.com/oauth/… однако, после успешного входа в систему, я всегда получаю ошибку: недопустимый параметр redirect_uri , и я уже тестировал различные типы URI переадресации: — с localhost:8000 — socialsizzle.herokuapp.com/auth — google.com я тестировал С и без планки в конце.
4. Я действительно не знаю, правильный ли это способ для меня получить разрешения нового пользователя и опубликовать их через API graph.
5. Я думаю, что вы используете неправильную конечную точку входа для начала —
api.instagram.com/oauth
это для IG Basic Display API. Вам необходимо реализовать вход в Facebook — developers.facebook.com/docs/instagram-api/getting-started
Ответ №1:
В настоящее время вы можете использовать API публикации контента только для публикации в бизнес-аккаунтах IG, вы не можете публиковать в некоммерческих аккаунтах. Бизнес-аккаунт IG означает, что он будет поддерживаться страницей Facebook.
Вы получите идентификатор бизнес-учетной записи IG GET /{page-id}?fields=instagram_business_account
, используя маркер доступа к странице.
Я бы рекомендовал ознакомиться с разделом требований в https://developers.facebook.com/docs/instagram-api/guides/content-publishing/
Если вы считаете, что ваше приложение настроено правильно, вы можете отправить сообщение об ошибке по адресу https://developers.facebook.com/support/bugs/create и команда там сможет проверить ваше приложение и маркер доступа
Комментарии:
1. спасибо за ответ @Andrew. В моем приложении контент также будет публиковаться для коммерческих учетных записей, однако мне нужно, чтобы эта публикация была сделана для любой коммерческой учетной записи, которая регистрируется в моем приложении.
2. @IgorRodrigues когда вы также говорите о коммерческих аккаунтах, я хотел бы уточнить, что в настоящее время вы не можете публиковать контент через API для некоммерческих аккаунтов.
3. на самом деле все в порядке, я могу поставить в качестве предварительного условия, чтобы у пользователей моего приложения были бизнес-аккаунты.