如何获取Instagram App Secret以生成长期有效访问令牌
问题根因
你出现参数找不到、接口报错的核心原因是混用了两套完全独立、凭证不互通的Instagram API体系:
- 你当前发帖代码调用的是Instagram Graph API,面向绑定了Facebook主页的Instagram商家/创作者账号,依托Facebook应用体系鉴权,接口走
graph.facebook.com域名 - 你参考的长令牌文档属于Instagram Basic Display API,面向未绑定Facebook主页的普通个人Instagram账号,有独立的密钥配置,接口走
graph.instagram.com域名,和前者的token、密钥完全不通用。
适配你当前发帖场景的长令牌生成方案
你用Graph API实现发帖功能,不需要查找Basic Display板块下的Instagram App Secret,直接按Facebook Graph API的长令牌规则生成即可,步骤如下:
- 进入你所用的Facebook应用后台,在「设置-基本信息」板块获取应用的App Secret(就是你之前尝试调用接口时用的那个Facebook应用密钥)和应用ID
- 调用Graph API的令牌交换接口,不要使用
graph.instagram.com域名的Basic Display接口,请求格式如下:
GET https://graph.facebook.com/v18.0/oauth/access_token ?grant_type=fb_exchange_token &client_id={填写你的Facebook应用ID} &client_secret={填写刚才获取的Facebook App Secret} &fb_exchange_token={填写你当前持有的短时效access_token}
- 接口返回的access_token即为有效期60天的长时效令牌,直接替换你原有发帖代码里的短令牌即可,其余业务代码不需要做任何修改。
若需获取Basic Display体系下的Instagram App Secret
如果你后续需要对接普通个人Instagram账号、使用Basic Display API能力,按以下路径操作即可看到对应密钥:
- 打开Facebook开发者后台,进入对应应用面板
- 在左侧「添加产品」菜单中找到Instagram Basic Display,点击将其添加到当前应用
- 添加完成后,左侧菜单Instagram分类下会出现「Basic Display」入口,进入该页面下拉到对应板块,完成安全验证后即可查看Instagram App Secret。
你之前调用接口报错的直接原因:用Graph API体系生成的短时效令牌,去请求Basic Display体系的令牌交换接口,两个体系鉴权规则不匹配,因此返回内容不可用的错误,和网络连通性无关。
内容的提问来源于stack exchange,提问作者Digital Farmer
相关产品推荐
相关产品推荐

