Facebook graph api 有没有办法判断它是Instagram创建者还是商业帐户?

Facebook graph api 有没有办法判断它是Instagram创建者还是商业帐户?,facebook-graph-api,instagram-api,instagram-graph-api,Facebook Graph Api,Instagram Api,Instagram Graph Api,最近Instagram推出了新的创建者档案。您的Instagram帐户现在可以是以下帐户之一:个人帐户、商业帐户或创建者帐户 并非所有可以使用业务帐户的东西都可以使用创建者帐户。所以我需要在我的应用程序中找到一种方法来确定它是一个还是另一个 我如何才能做到这一点?您可以使用Instagram Basic Display API做到这一点。示例语法如下所示: GET https://graph.instagram.com/{user-id} ?fields=id,username,accoun

最近Instagram推出了新的创建者档案。您的Instagram帐户现在可以是以下帐户之一:个人帐户、商业帐户或创建者帐户

并非所有可以使用业务帐户的东西都可以使用创建者帐户。所以我需要在我的应用程序中找到一种方法来确定它是一个还是另一个


我如何才能做到这一点?

您可以使用Instagram Basic Display API做到这一点。示例语法如下所示:

GET https://graph.instagram.com/{user-id}
  ?fields=id,username,account_type
  &access_token={access-token}
将返回一个json。返回的帐户类型将是以下类型之一:

BUSINESS, CONSUMER, CREATOR
有关更多信息,请参阅此链接:
感谢@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;
    }
 }

如果你想了解更多信息,我写了一封信。

谢谢你的回答。据我所知,我需要一个Instagram用户访问令牌。不幸的是,我只有Facebook用户访问令牌(Instagram Graph API)。您好,我做了一些研究,这可能会有所帮助。如果您要检查用户名,只需向
https://www.instagram.com/${username}/?\uu a=1
。例如,如果username是twicegram,则对“”的get请求将返回json
response.graphql.user.is_business_account
返回指示TwiceGram是否为业务帐户的布尔值。很抱歉重新打开此旧主题,但我的情况与此相同。通过Instagram Graph API(而非Instagram Basic API)找到这些信息是否幸运?这一点现在非常重要,因为一些新的实现只适用于商业客户,而不适用于创建者,因此区分它们对于提供良好的用户体验至关重要。目前,Instagram Graph API无法实现这一点。最后,我向{username}/?\uu a=1发出了一个请求,并检查了属性
is\u business\u account
,该属性对我来说很好,但也存在一些潜在的缺陷(例如,如果请求太多,Instagram会阻塞您的IP,等等)@Andreaolivato是的,没错,你会在一段时间后被阻止,特别是如果你为很多用户这样做的话。经过一点测试,我找到了一种方法,调用端点创建内容并捕获异常,如果用户不在业务范围内,异常会抛出不同的代码。稍后我会发布更多信息