有没有办法判断它是 Instagram 创作者还是企业帐户?

Is there a way to tell if its an Instagram creator or business account?

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

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

我该怎么做?

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

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

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

BUSINESS, CONSUMER, CREATOR

有关详细信息,请参阅此 link: Instagram Basic Display API/Reference/User

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

只是为了帮助那些不想仅仅为了获得这样的基本信息而抓取的人,实际上可以通过模拟对 /userid/media 端点的空 POST 调用来提取它并捕获代码 = 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;
    }
 }

如果你需要更多信息,我写了一个 more extensive article here

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

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

如果您不是专业账户,错误代码{#10}将return。

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