instagram - 解码 Instagram 媒体 ID?

标签 instagram instagram-api

有关媒体项目 ID 的问题。 ID 采用这种形式:

198319604945554515_31149514

_ 后面的数字是多少?我可以假设 _ 之前的部分是唯一的吗?

显然仅使用 GetMedia 查询中的第一部分即可。

最佳答案

首先你要问:

What is the number after the _?

这是相关媒体 ID 的用户 ID。

And can I assume that the part before the _ is unique?

是和否。

我自己一直在试验 Instagram API 并且对媒体 ID 格式很好奇,所以偶然发现了这个问题并发布了一个答案以扩展已经发表的评论。

基本上,_ 之前的部分是基于与媒体项本身相关的时间戳;上传或创建我假设。这是基于 johnnyg17’s comment ——这是对字符串格式的正确评估——并且可以很容易地转换为 Unix 日期格式。

也就是说,ID 唯一真正的“唯一性”来自 _ 之前的部分以及之后的用户 ID 的组合。

由于第一部分显然来自时间戳,并且数百万用户一直在使用 Instagram,因此多个用户上传具有相同时间戳的图像的可能性相当高。它本身不能被认为是“唯一的”,因为仅将该数字用于 ID 目的可能会遇到 ID 冲突,这绝对是一个缩放问题。

因此,Instagram 媒体 ID 通过将 _ 之前基于时间戳的项目与其后的唯一用户 ID 相结合来解决这个问题。该组合使媒体 ID 独一无二。

为了证明 ID 的第一部分确实基于 Unix 时间戳——正如 johnnyg17’s comment 所解释的——我使用我有权访问的一些媒体 ID 在 PHP 中编写了它; “用户 ID”当然更改为 123456789 以保护隐私。

$test_array = array();

$test_array[] = "1388611234533808001_123456789";
$test_array[] = "1389294690389553994_123456789";
$test_array[] = "1390349053757443491_123456789";
$test_array[] = "1391541737234771515_123456789";
$test_array[] = "1392560455737690245_123456789";
$test_array[] = "1392592260868093320_123456789";

foreach ($test_array as $test_value) {
  $split_string = mb_split('_', $test_value);
  $unix_time = round(($split_string[0]/1000000000000 + 11024476.583915909500)/0.008388608000);
  echo date("F j, Y, h:i:s a", $unix_time);
  echo ' | ';
  echo '<b>Instagram ID String</b>: ' . $split_string[0] . ' | <b>User ID</b>: ' . $split_string[1] . '<br />';
}

运行产生以下输出:

November 21, 2016, 02:09:40 pm | Instagram ID String: 1388611234533808001 | User ID: 123456789
November 22, 2016, 12:47:34 pm | Instagram ID String: 1389294690389553994 | User ID: 123456789
November 23, 2016, 11:42:24 pm | Instagram ID String: 1390349053757443491 | User ID: 123456789
November 25, 2016, 03:12:03 pm | Instagram ID String: 1391541737234771515 | User ID: 123456789
November 27, 2016, 12:56:04 am | Instagram ID String: 1392560455737690245 | User ID: 123456789
November 27, 2016, 01:59:15 am | Instagram ID String: 1392592260868093320 | User ID: 123456789

关于instagram - 解码 Instagram 媒体 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30036836/

相关文章:

api - 显示 Instagram 粉丝数量的最简单方法是什么

facebook - 从 url 获取 Instagram 帖子的 Facebook Media-id

instagram - 1080x1080 照片通过 Instagram API

python - 第二次运行代码后,适用于 Python 的 Instabot API 引发错误

instagram - 我如何根据用户在 Instagram api 中的访问 token 找出用户的范围?

json - Instagram API :/locations/location-id/media/recent returns empty result

instagram - 接收/oauth/access_token 的 "400 Bad Request"

angularjs - 如何从 Instagram API 获取媒体?

android - 如何在 Android 中以编程方式获取 Instagram 企业帐户的已连接 Facebook 页面 ID?

Android 控件/布局(Instagram 应用程序如何做到这一点?)