Я думаю, что у меня есть ответы на большинство вопросов ...
Если я запрашиваю определенную страницу Facebook, она возвращает значения для всех четырех полей Instagram: page_backed_instagram_accounts , instagram_business_account , instagram_accounts , connected_instagram_account . В приведенном ниже разделе показана отредактированная версия того, что возвращается и что происходит, когда я пытаюсь получить доступ к каждому с помощью Instagram API :
page_backed_instagram_accounts=#<Hashie::Mash data=#<Hashie::Array [#<Hashie::Mash id="964...289">]>
ERROR: "OAuthException: (#100) Tried accessing nonexisting field (biography) on node type (InstagramUser)"
instagram_business_account=#<Hashie::Mash id="178...143">
#<Hashie::Mash followers_count=X follows_count=Y ... username="<public handle>" website="https://www.../">
instagram_accounts=#<Hashie::Mash data=#<Hashie::Array [#<Hashie::Mash id="423...525">]>>
ERROR: "OAuthException: (#100) Tried accessing nonexisting field (biography) on node type (InstagramUser)"
connected_instagram_account=#<Hashie::Mash id="178...143">
#<Hashie::Mash followers_count=X follows_count=Y ... username="<public handle>" website="https://www.../">
Как видите, API Instagram может получить доступ к instagram_business_account и connected_instagram_account (в данном случае это одна и та же учетная запись), но не к page_backed_instagram_accounts и instagram_accounts .
Однако, если я пытаюсь получить доступ к тем же идентификаторам учетной записи на основе определения Marketing API , я получаю дополнительные результаты:
page_backed_instagram_accounts=#<Hashie::Mash data=#<Hashie::Array [#<Hashie::Mash id="964...289">]>
#<Hashie::Mash follow_count=0 followed_by_count=0 has_profile_picture=true id="964...289" is_private=false is_published=false media_count=0 profile_pic="https://scontent.cdninstagram.com/..._a.jpg?_nc_ht=scontent.cdninstagram.com" username="...758">
instagram_business_account=#<Hashie::Mash id="178...143">
ERROR: "OAuthException: (#100) Tried accessing nonexisting field (follow_count) on node type (ShadowIGUser)"
instagram_accounts=#<Hashie::Mash data=#<Hashie::Array [#<Hashie::Mash id="423...525">]>>
#<Hashie::Mash follow_count=J followed_by_count=K has_profile_picture=true id="423...525" is_private=false is_published=true media_count=1 profile_pic="https://scontent.xx.fbcdn.net/...a.jpg?_nc_cat=104&_nc_ht=scontent.xx&oh=d7ef...2dc&oe=5D0006BC" username="<public handle>">
connected_instagram_account=#<Hashie::Mash id="178...143">
ERROR: "OAuthException: (#100) Tried accessing nonexisting field (follow_count) on node type (ShadowIGUser)"
Как вы можете видеть во втором примере, Маркетинговый API может получить доступ к page_backed_instagram_accounts и instagram_accounts , но не instagram_business_account и connected_instagram_account .
Итак, насколько я могу судить, page_backed_instagram_accounts и instagram_accounts являются рекламными аккаунтами (Marketing API), доступ к которым должен осуществляться через [Marketing API] [3].
Несколько других замечаний:
- Учетная запись в page_backed_instagram_accounts , по-видимому, имеет автоматически созданное имя пользователя, не публикуется (
is_published=false
).
- Хотя учетная запись в instagram_accounts имеет то же имя пользователя, что и учетная запись в instagram_business_account и connected_instagram_account , на самом деле она немного отличается
followers_count
, follows_count
и другой идентификатор.
- API Instagram сообщает о типе узла
InstagramUser
, а API маркетинга сообщает о типе узла ShadowIGUser
.
Я считаю, что page_backed_instagram_accounts содержит автоматически созданную учетную запись для всех учетных записей на тот случай, если нет другой учетной записи, связанной с учетной записью Instagram. Тем не менее, было бы неплохо увидеть более определенный набор определений для этих полей, возвращаемых для страницы Facebook через Graph API.