【问题标题】:extract user and caption from instagram image URL从 Instagram 图像 URL 中提取用户和标题
【发布时间】:2026-01-15 04:35:01
【问题描述】:

我想使用 instagram API 从照片 URL 中提取发布照片和与照片相关联的标题的用户。

例如:

图片网址为:http://instagram.com/p/rRoE9uskcD/

如何从中提取用户和标题?

【问题讨论】:

  • 你搞定了吗?
  • @KristerAndersson:看我的回答。无需使用客户端 ID 或令牌
  • @JFK - 我不知道以这种方式嵌入端点。看起来很棒。

标签: instagram


【解决方案1】:

你其实只需要使用 Instagam 的Embedding Endpoints

所以这个链接:

http://api.instagram.com/oembed?url=http://instagr.am/p/rRoE9uskcD/

将以 json 格式返回与此类媒体相关的信息。

您可以在 ajax 函数中以编程方式获取信息,例如:

var url = "http://api.instagram.com/oembed?url=http://instagr.am/p/rRoE9uskcD/";
jQuery(document).ready(function ($) {
    $.ajax({
        url: url,
        dataType: "jsonp", // <== this is important
        cache: false,
        success: function (data) {
            console.log(data.author_name); // the author
            console.log(data.title); // the caption (if any)
        }
    });
});

JSFIDDLE

【讨论】:

    【解决方案2】:

    如果你已经设置了 Instagram 客户端,你可以使用 curl 和 php 来做这样的事情:

    $instagram_client_secret = 'YOUR_CLIENT_SECRET';
    $instagram_client_id = 'YOUR_CLIENT_ID';
    $shortcode = 'rRoE9uskcD';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_URL, "https://api.instagram.com/v1/media/shortcode/$shortcode?client_id=$instagram_client_id&client_secret=$instagram_client_secret");
    $result = curl_exec($ch);
    $result = json_decode($result);
    if(isset($result->meta->code) && $result->meta->code == 200) {
      // print out the username and caption
      print $result->data->user->full_name;
      print $result->data->caption->text;
    }
    curl_close($ch);
    

    以下示例使用 jQuery 来实现相同的目标:

    $(document).ready(function() {
       $.get('https://api.instagram.com/v1/media/shortcode/rRoE9uskcD?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET', function(data) {
         alert(data.data.user.full_name + ' ' + data->data->caption->text); 
       }, 'jsonp');
    });
    

    参考:Media Endpoints

    【讨论】:

      最近更新 更多