我使用了许多(大多数)现有小部件的设置来设置仪表板。到目前为止,这是有效的 - see production dashboard here (正在进行中)。
现在我希望有一个Instagram小部件,显示n
拍摄的username
最新图像。
我找到了一个小部件,它将显示long
和lat
的图像,并且能够配置我的令牌,所以我可以与Instagram API交谈。
这是我当前小部件originally from @mjamieson's gist on github的代码。
require 'instagram'
require 'rest-client'
require 'json'
# Instagram Client ID from http://instagram.com/developer
Instagram.configure do |config|
config.client_id = ENV['INSTAGRAM_CLIENT_ID']
config.client_secret = ENV['INSTAGRAM_CLIENT_SECRET']
end
# Latitude, Longitude for location
instadash_location_lat = '45.429522'
instadash_location_long = '-75.689613'
SCHEDULER.every '10m', :first_in => 0 do |job|
photos = Instagram.media_search(instadash_location_lat,instadash_location_long)
if photos
photos.map do |photo|
{ photo: "#{photo.images.low_resolution.url}" }
end
end
send_event('instadash', photos: photos)
end
我让这个工作,但是想修改给定的API调用,只显示我/我选择的用户拍摄的图像。不幸的是,我不太了解ruby或json足以弄清楚Instagram API文档要我做什么。
我找到了以下网址
https://api.instagram.com/v1/users/{user-id}/media/recent/?access_token={acces-token}
并尝试了(填写了我的凭据)。它正确地返回了json数据,包括我的图像(以及其他数据)。
如何修改给定代码以按用户名而不是位置显示图像?
非常感谢任何帮助。
答案 0 :(得分:0)
您需要SELECT [Property],[Value]
From [Table1]
Where [Date] Between [Forms]![Calendar Test]![Start Date] and [Forms]![Calendar Test]![End Date]
才能获得某些用户的内容。在gem页面上查看sample application。
看来你需要这样的东西:
SELECT [Property],[Value]
From [Table 2]
Where [Month] Between [Forms]![Calendar Test]![Start Date] and [Forms]![Calendar Test]![End Date]
此示例如何使用OAuth2浏览器授权和sinatra应用程序获取此access_token:
access_token
答案 1 :(得分:0)
require 'sinatra'
require 'instagram'
# Instagram Client ID from http://instagram.com/developer
Instagram.configure do |config|
config.client_id = ENV['INSTAGRAM_CLIENT_ID']
config.client_secret = ENV['INSTAGRAM_CLIENT_SECRET']
config.access_token = ENV['INSTAGRAM_ACCESS_TOKEN']
end
user_id = ENV['INSTAGRAM_USER_ID']
SCHEDULER.every '2m', :first_in => 0 do |job|
photos = Instagram.user_recent_media("#{user_id}")
if photos
photos.map! do |photo|
{ photo: "#{photo.images.low_resolution.url}" }
end
end
send_event('instadash', photos: photos)
end
1。)除了我之前定义的client_id
和client_secret
之外,我只需要将access_token
添加到Instagram.configure
部分。
2。)SCHEDULER
正常工作,但需要拨打Instagram.user_recent_media("#{user_id}")
而不是Instagram.media_search(instadash_location_lat,instadash_location_long)
3。)为此,我必须为user_id
现在,该呼叫将按用户ID过滤最近的媒体,并将其输出到虚拟小部件中。
感谢您的参与和提示!这使我指出了文档的正确方向,并帮助我自己弄明白。