【问题标题】:Get instagram public JSON feed with cURL PHP使用 cURL PHP 获取 Instagram 公共 JSON 提要
【发布时间】:2019-12-21 09:48:23
【问题描述】:

我想使用 cURL 从公开的 Instagram 个人资料中获取 JSON 响应。我坚持回复,因为如果我尝试var_dump 数据,它将什么都没有,一个空白字符串。我的代码有问题吗?

$url = 'https://instagram.com/'.$instance['username'].'/?__a=1';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Accept: application/json') );
$data = curl_exec($ch);
curl_close($ch);
var_dump( $url );

$instance 变量是使用 wordpress 小部件输入表单设置的,并且是正确的。我的问题只在于 curl 行为。

感谢您的帮助

【问题讨论】:

  • 对我来说似乎工作正常,请确保 $instance['username'] 已实际设置并且不包含任何空格并且配置文件是公开的
  • 我尝试过使用file_get_contents 并且可以正常工作,但使用 curl 不行。我正在代码前端部分的 wordpress 小部件中实现这一点。我已经转储了 $url 变量,并且在发出请求时设置了它,但我无法得到回复。
  • @kerbholz 你测试了吗?
  • 可能值得看看stackoverflow.com/questions/3987006/…,看看有没有错误。
  • 是的,按原样进行了测试,没有CURLOPT_FOLLOWLOCATION 也能正常工作 - 但问题似乎已经解决了。

标签: php curl


【解决方案1】:

脚本需要设置CURLOPT_FOLLOWLOCATION参数。

$url = 'https://instagram.com/'. $instance['username'] .'/?__a=1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json') );
$data = curl_exec($ch);
curl_close($ch);

var_dump($data); // Show the response

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多