Instagram API订阅,如何获得发布?

mel*_*PLS 2 php api post instagram

我正在努力了解如何获取寻找特定标签的Instagram订阅的结果.最终,我想要做的是将图像与我正在寻找的标签一起发布添加照片的链接以及数据库的用户名.

我能够创建我的订阅没问题,但现在我不知道如何从订阅中获取POST信息.

使用两个文件... subscribe.php和callback.php

subscribe.php

<?php

//ALL YOUR IMPORTANT API INFO
$client_id = 'XXX';
$client_secret = 'XXX';
$object = 'tag';
$object_id = 'taglookingfor';
$aspect = 'media';
$verify_token='';
$callback_url = '(full URL here)/callback.php';


//SETTING UP THE CURL SETTINGS...
$attachment =  array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'object' => $object,
'object_id' => $object_id,
'aspect' => $aspect,
'verify_token' => $verify_token,
'callback_url'=>$callback_url
);

//URL TO THE INSTAGRAM API FUNCTION
$url = "https://api.instagram.com/v1/subscriptions/";

$ch = curl_init();

//EXECUTE THE CURL...
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output 
$result = curl_exec($ch);
curl_close ($ch);

//PRINT THE RESULTS OF THE SUBSCRIPTION, IF ALL GOES WELL YOU'LL SEE A 200
print_r($result);


?>
Run Code Online (Sandbox Code Playgroud)

callback.php

 <?php

if (isset ($_GET['hub_challenge'])){
    echo $_GET['hub_challenge'];
}

//This is an update
else {

    $myString = file_get_contents('php://input');
    $answer = json_decode($myString);
    echo $answer;
}

?>
Run Code Online (Sandbox Code Playgroud)

在我的callback.php中,我试图回应json_decode的结果......但是这也引出了一个问题,我将如何捕获回声?对不起,这可能真的很傻但是我怎么抓住callback.php脚本被一个带有我正在寻找的特定标签的新图像触发的时刻.正如我所提到的,我希望在$ answer中获取信息并将一些信息插入到数据库中.

我是新手,所以任何帮助都会非常感激.太感谢了!!

Mar*_*k D 6

我感觉到你的痛苦.他们的API并不是最容易使用的,他们的文档还有很多不足之处.那就是说,这就是:

  1. 您向订阅API端点发送请求
  2. Instagram会向您的callback.php文件发送回复
  3. 响应包含hub_challenge参数,您需要回显该参数以确认您的订阅
  4. 如果成功,您将使用新订阅的subscriptionid向您的callback.php发送帖子
  5. 每当你收到callback.php的帖子时,你需要向Instagram发出一个请求,要求他们提供与你的标签匹配的最新媒体.