我是Instagram新手,我的任务是编写一个应用程序,根据某个标签抓取Instagram照片上传。这意味着如果应用程序已启动并且正在搜索标签“#awesomeevent”,那么使用该主题标签上传照片的任何人都将自动存储到我们的数据库中。
应用程序应该与http://statigr.am/tag/类似,但是显示照片应该将照片存储到数据库中。
这样做的过程是什么。任何从头到尾都有这个教程的教程。甚至涵盖了如何从头开始创建Instagram应用程序。任何帮助将不胜感激。
谢谢
答案 0 :(得分:4)
开发人员经常忽略的是API条款和条件。我自己一直在那里。
API使用条款
在开始使用API之前,我们有一些我们想要告诉您的指南。请务必阅读完整的API Terms of Use
使用条款。以下是您将要阅读的内容:
Instagram用户拥有自己的图片。您有责任确保尊重这一权利。
您不能在申请中使用Instagram名称。
未经用户明确同意,您无法使用Instagram API抓取或存储用户的图片。
您无法复制Instagram.com的核心用户体验
不要滥用API。太快的请求会使您的访问权限关闭
然而,这些术语中的一部分也指出:
- 除了合理的时间段之外,您不得缓存或存储任何Instagram用户照片,以便提供您所需的服务 向Instagram用户提供。
希望在实际编码和存储图像之前,这是一个开始。
答案 1 :(得分:1)
首先,您应该咨询instagram api。
至于你需要的具体api是:
/tags/tag-name/media/recent
例如,如果您要查找标记#awesomeevent
中的图像,则会执行api查询:
https://api.instagram.com/v1/tags/awesomeevent/media/recent?access_token=ACCESS-TOKEN
答案 2 :(得分:1)
我想看看Instagram提供的两个库。 ruby库位于https://github.com/Instagram/instagram-ruby-gem,python库位于https://github.com/Instagram/python-instagram
如果您使用任何一个库进行编程,它们似乎都有示例可以帮助您入门。
就存储问题而言,您是否可以存储图像的URL地址而不是实际图像本身? API返回返回图像URL的JSON信息。
希望有所帮助。
答案 3 :(得分:0)
您可以使用以下ruby脚本检索图像并将其保存到文件中。然后,您可以在数据库中引用该文件,也可以使用特定数据库实现的代码替换最后一个块。在不知道您的数据库类型和架构的情况下,没有人可以告诉您如何向其添加内容。
require "instagram"
require "restclient"
Instagram.configure do |config|
config.client_id = INSTAGRAM_CLIENT_ID
config.client_secret = INSTAGRAM_CLIENT_SECRET
end
instagram_client = Instagram.client(:access_token => INSTAGRAM_ACCESS_TOKEN)
tags = instagram_client.tag_search('cat')
urls = Array.new
for media_item in instagram_client.tag_recent_media(tags[0].name)
urls << media_item.images.standard_resolution.url
end
urls.each_with_index do |url, idx|
image = RestClient.get(url)
path = Dir.pwd + "/#{idx}.jpg"
File.open(path, 'w') {|f| f.write(image) }
end