Php Instagram API 2019访问令牌每2小时过期一次

Php Instagram API 2019访问令牌每2小时过期一次,php,instagram,instagram-api,instagram-graph-api,Php,Instagram,Instagram Api,Instagram Graph Api,截至2019年10月21日,Instagram阻止您在Instagram内创建和管理您的客户,现在一切都通过Facebook开发者进行管理,这没有什么真正的问题 在我的例子中,所有需要的是显示一个用户配置文件图像。我让这个工作相当快,但访问令牌只是每2小时过期一次,然后我需要重新授权它。。。这以前从来都不是问题。。。你只要授权一次,它就行了 以这个工作代码为例: function fetchData($url){ $inst = curl_init($url); curl_setopt(

截至2019年10月21日,Instagram阻止您在Instagram内创建和管理您的客户,现在一切都通过Facebook开发者进行管理,这没有什么真正的问题

在我的例子中,所有需要的是显示一个用户配置文件图像。我让这个工作相当快,但访问令牌只是每2小时过期一次,然后我需要重新授权它。。。这以前从来都不是问题。。。你只要授权一次,它就行了

以这个工作代码为例:

function fetchData($url){
  $inst = curl_init($url);
  curl_setopt($inst, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($inst, CURLOPT_SSL_VERIFYHOST, 0);
  curl_setopt($inst, CURLOPT_SSL_VERIFYPEER, 0);
  $output = curl_exec($inst);
  curl_close($inst);

  return $output;
}

$insta_access_token = 'MY_ACCESS_TOKEN';
$insta_count = '6';

$instagram_result = fetchData("https://graph.instagram.com/me/media?fields=id,username,media_url&access_token={$insta_access_token}&count={$insta_count}");
$instagram_result = json_decode($instagram_result);
print_r($instagram_result);
在访问令牌过期之前,这一切正常

我在这里看到了完全不使用API的其他技巧:

这使用PHP提取配置文件内容,是我研究中唯一可行的解决方案,可以从一次性使用的配置文件中显示基本图像库:

$html = file_get_contents('https://instagram.com/apple/');
preg_match('/_sharedData = ({.*);<\/script>/', $html, $matches);
$profile_data = json_decode($matches[1])->entry_data->ProfilePage[0]->graphql->user;
$html=file\u get\u contents('https://instagram.com/apple/');
preg_match('/_sharedData=({.*);/',$html,$matches);
$profile\u data=json\u decode($matches[1])->entry\u data->ProfilePage[0]->graphql->user;
我是否遗漏了一些东西,或者没有办法让有效的访问令牌在经过身份验证后运行一次以显示基本图像


干杯。

您所需要的只是通过向该端点发出GET请求来延长您的访问令牌持续时间(据我所知,长寿命访问令牌在60天内是有价值的)


希望这就是您所寻找的=)

您所需要的是通过向该端点发出GET请求来延长您的访问令牌持续时间(据我所知,长寿命访问令牌在60天内很有价值)


希望这就是您想要的=)

您可能想要一个刷新令牌@delboy1978uk不幸的是Instagram不允许您这样做:(在这种情况下,请尝试捕获并获取一个新令牌,然后再次拨打电话:-|@delboy1978uk唯一的问题是您无法自动执行,用户似乎必须单击“授权”…非常令人沮丧。@下面的答案将为您提供一个访问令牌,时间稍长,但将过期,唯一的方法是编写一些代码to在某种形式的cron作业上重新验证并重新生成访问令牌,我恐怕还没有时间讨论这个问题。对于基本用法来说,似乎不必要的过度使用。文件\u get\u contents()在我最初的问题中,上面的方法现在是一个厚颜无耻的变通方法。你可能想要一个刷新令牌@delboy1978uk。不幸的是Instagram不允许你这样做:(在这种情况下,请尝试捕获并获取一个新令牌,然后再次拨打电话:-|@delboy1978uk唯一的问题是您无法自动执行,用户似乎必须单击“授权”…非常令人沮丧。@下面的答案将为您提供一个访问令牌,时间稍长,但将过期,唯一的方法是编写一些代码to在某种形式的cron作业上重新验证并重新生成访问令牌,我恐怕还没有时间讨论这个问题。对于基本用法来说,似乎不必要的过度使用。文件\u get\u contents()在我的原始问题中,上面的方法现在是一个厚颜无耻的变通方法。为答案干杯,这确实有效,但是一旦访问令牌过期,提要将停止显示:/干杯为答案干杯,这确实有效,但是一旦访问令牌过期,提要将停止显示:/
url = 'https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&%20client_id='Your_App_Id'&client_secret='Your_App_secret'&fb_exchange_token='Your_Short_Lived_Access_token''