最近 Instagram 推出了他们的新创作者资料。您的 Instagram 帐户现在可以是以下之一:个人帐户、企业帐户或创建者帐户。
并非企业帐户可以实现的一切都可以通过创建者帐户实现。所以我需要在我的应用程序中确定它是一个还是另一个。
我怎样才能做到这一点?
最近 Instagram 推出了他们的新创作者资料。您的 Instagram 帐户现在可以是以下之一:个人帐户、企业帐户或创建者帐户。
并非企业帐户可以实现的一切都可以通过创建者帐户实现。所以我需要在我的应用程序中确定它是一个还是另一个。
我怎样才能做到这一点?
感谢@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;
}
}
如果您想了解更多信息,我在这里写了一篇更广泛的文章。
您可以尝试检查速率限制使用情况
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
您可以使用 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