4

最近 Instagram 推出了他们的新创作者资料。您的 Instagram 帐户现在可以是以下之一:个人帐户、企业帐户或创建者帐户。

并非企业帐户可以实现的一切都可以通过创建者帐户实现。所以我需要在我的应用程序中确定它是一个还是另一个。

我怎样才能做到这一点?

4

3 回答 3

2

感谢@RaideR 的问题和评论中的支持。

只是为了帮助那些不想抓取只是为了获取这样的基本信息的每个人,实际上可以通过模拟对 /userid/media 端点的空 POST 调用并使用 code = 10 捕获异常来提取它,这表示该帐户是创建者。所有其他情况都是商业账户。

POST /userid/media 
CATCH FacebookResponseException

您可以在下面找到我的 PHP 代码作为参考,但您可以在任何语言和任何框架中应用相同的逻辑:

public function isBusiness() {
    try {
        $this->conn->post("/".$this->fb_id."/media", [], $this->getToken());
        return true;
    } catch (FacebookResponseException $e) {
        if ($e->getCode() == 10) {
        return false;
    } catch (\Exception $e) {
        return true;
    }
 }

如果您想了解更多信息,我在这里写了一篇更广泛的文章。

于 2021-05-22T08:48:55.547 回答
0

您可以尝试检查速率限制使用情况

GET graph.facebook.com/{accountid}/content_publishing_limit&access_token={your_access_token}

如果您不是专业帐户,则会返回错误代码 {#10}。

error: {
   message: '(#10) The user is not an Instagram Business',
   type: 'OAuthException',
   code: 10,
} 

否则响应将类似于;

{ 
   "data": [{
    "quota_usage": 2
  }]
}

这是来自开发者指南的详细信息:https ://developers.facebook.com/docs/instagram-api/guides/content-publishing#checking-rate-limit-usage

于 2022-01-25T17:38:40.840 回答
0

您可以使用 Instagram 基本显示 API 来做到这一点。示例语法如下:

GET https://graph.instagram.com/{user-id}
  ?fields=id,username,account_type
  &access_token={access-token}

将返回一个 json。返回的帐户类型将是以下之一:

BUSINESS, CONSUMER, CREATOR

有关更多信息,请参阅此链接: Instagram Basic Display API/Reference/User

于 2019-11-11T18:16:54.390 回答