Как автоматически публиковать контент в другом аккаунте instagram с помощью API instagram graph?

#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. на самом деле все в порядке, я могу поставить в качестве предварительного условия, чтобы у пользователей моего приложения были бизнес-аккаунты.