我想知道ink361是如何从用户名创建Instagram RSS提要的.
示例Feed:http://ink361.com/feed/user/snoopdogg
博客文章:http: //blog.ink361.com/post/23664609916/new-rss-instagram-feed-feature-on-ink361-com
任何见解将不胜感激.
谢谢.
Vik*_*nei 11
Instagram有一个可公开访问的RSS API,很难找到有关它的任何信息,但它适用于标签(我们确实使用它).
对于标签,语法如下:
http://instagr.am/tags/some-tag-you-want-to-follow/feed/recent.rss
Run Code Online (Sandbox Code Playgroud)
我不确定他们是否对用户的提要有类似的东西,因为我说它很难找到有关它的信息,它可能会从一天到另一个消失,有利于官方API,但现在它适用于标签.
这是一篇关于它的官方博客文章(虽然它仅涵盖标签):http://blog.instagram.com/post/8755963247/introducing-hashtags-on-instagram
@ user2543857的回答很好.不幸的是,Instagram数据的结构发生了变化.截至发布之日,这将有效.复制/粘贴到PHP服务器上的文件中并使用如下:yoursite.com/instarss.php?user = name_of_instagram_user这将返回有效的XML/RSS提要.
编辑!!当然,页面/ JSON的输出随着Instagram的新外观而改变.这是更新的代码(2015年6月):
<?php
if (!isset($_GET['user'])) {
exit('Not a valid RSS feed. You didn\'nt provide an Instagram user. Send one via a GET variable. Example .../instarss.php?user=snoopdogg');
}
header('Content-Type: text/xml; charset=utf-8');
$html = file_get_contents('http://instagram.com/'.$_GET['user'].'/');
$html = strstr($html, '{"static_root');
$html = strstr($html, '</script>', true);
//$html = substr($html,0,-6);
$html = substr($html, 0, -1);
$data = json_decode($html);
// print_r($data->entry_data->ProfilePage[0]->user->media->nodes);
$rss_feed = '<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel>';
$rss_feed .= '<title>'.$_GET['user'].'\'s Instagram Feed</title><atom:link href="http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"].'" rel="self" type="application/rss+xml" /><link>http://instagram.com/'.$_GET['user'].'</link><description>'.$_GET['user'].'\'s Instagram Feed</description>';
foreach($data->entry_data->ProfilePage[0]->user->media->nodes as $node) {
$rss_feed .= '<item><title>';
if(isset($node->caption) && $node->caption != '') {
$rss_feed .= htmlspecialchars($node->caption, ENT_QUOTES, ENT_HTML5);
} else {
$rss_feed .= 'photo';
}
// pubdate format could also be: "D, d M Y H:i:s T"
$rss_feed .= '</title><link>https://instagram.com/p/'.$node->code.'/</link><pubDate>'.date("r", $node->date).'</pubDate><dc:creator><![CDATA['.$_GET['user'].']]></dc:creator><description><![CDATA[<img src="'.$node->display_src.'" />]]></description><guid>https://instagram.com/p/'.$node->code.'/</guid></item>';
} // foreach "node" (photo)
$rss_feed .= '</channel></rss>';
echo $rss_feed;
?>
Run Code Online (Sandbox Code Playgroud)
实际上,不要使用上面的代码.我将来会努力保持这个要点.
编辑2016年12月:我已经厌倦了追逐每一个不断变化的Instagram输出只是为了屏幕刮掉它并在几个月后改变它.我想说只是使用API ..如果你仍然有兴趣从用户的页面制作RSS提要,这个要点应该让你知道如何做到这一点.
Mat*_*dak -1
您可以使用他们的 API 访问 Instagram 的 rss feed。他们的 API 使用 oAuth2 进行身份验证。我在我的个人博客上使用这种方法在主页上拉入 Instagram 图片。我怀疑 ink361 网站就是这样运作的。Ink361 将连接到 instagram api 并提示用户通过 Instagram 框登录,用户可以使用该框来允许 ink361 访问其 Instagram 帐户。一旦身份验证成功,ink361 网站将缓存 Instagram 收到的令牌,以便他们可以使用相同的令牌定期重复返回 Instagram api 进行身份验证。宾果,您可以访问用户数据,并且可以从中创建 RSS 提要。
| 归档时间: |
|
| 查看次数: |
47588 次 |
| 最近记录: |