You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现InstagramBasicDisplay的PHP Callback获取Code以获取AccessToken?

实现Instagram Basic Display回调获取Code与Access Token

步骤1:修正重定向URI配置

把初始化InstagramBasicDisplay时的redirectUri替换成你自己服务器上的回调页面地址,比如https://你的域名.com/instagram-callback.php。同时要确保这个地址已经在Facebook开发者后台的Instagram应用配置中添加为有效重定向URI。

步骤2:创建回调页面(instagram-callback.php)

在服务器上新建这个回调文件,代码逻辑如下:

<?php
// 引入封装包的自动加载文件(根据你的实际路径调整)
require 'vendor/autoload.php';

use EspressoDev\InstagramBasicDisplay\InstagramBasicDisplay;

// 初始化实例,参数和登录页面保持一致
$instagram = new InstagramBasicDisplay([
    'appId' => 'XXXXX', // 替换为你的App ID
    'appSecret' => 'XXXX', // 替换为你的App Secret
    'redirectUri' => 'https://你的域名.com/instagram-callback.php' // 和上面设置的地址完全一致
]);

// 检查URL中是否存在code参数
if (isset($_GET['code'])) {
    try {
        // 用code换取access token
        $accessToken = $instagram->getAccessToken($_GET['code']);
        
        // 这里可以把access token存入数据库或缓存,后续用来调用洞察API
        echo "Access Token: " . $accessToken;
        
        // 可选:验证token有效性,获取用户基础信息
        $userProfile = $instagram->getUserProfile();
        print_r($userProfile);
        
        // 后续可通过access token调用洞察接口,比如获取用户洞察数据
        // $userInsights = $instagram->getUserInsights(...);
    } catch (Exception $e) {
        echo "授权出错:" . $e->getMessage();
    }
} else {
    // 无code参数说明授权失败或用户取消授权
    echo "授权失败,未获取到code参数";
}
?>

步骤3:调整登录页面代码

确保登录页面的redirectUri和回调页面地址完全匹配,同时指定获取洞察数据所需的权限:

<?php
require 'vendor/autoload.php';

use EspressoDev\InstagramBasicDisplay\InstagramBasicDisplay;

$instagram = new InstagramBasicDisplay([
    'appId' => 'XXXXX',
    'appSecret' => 'XXXX',
    'redirectUri' => 'https://你的域名.com/instagram-callback.php' // 与回调页面地址一致
]);

// 生成登录URL时,必须包含insights权限才能获取洞察数据
$loginUrl = $instagram->getLoginUrl(['user_profile', 'user_media', 'insights']);

echo "<a href='{$loginUrl}'>Login with Instagram</a>";
?>

关键注意事项

  • 必须在Facebook开发者后台的产品 > Instagram Basic Display > 有效重定向URI中添加你的回调页面地址,否则会触发授权失败。
  • 获取洞察数据依赖insights权限,生成登录URL时务必包含该权限。
  • Access Token有过期时间,可通过封装包提供的方法刷新,避免失效。

内容的提问来源于stack exchange,提问作者TharakaNirmana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:35:20