使用Flickr API下载我自己的私人相册

时间:2018-04-30 09:41:26

标签: ruby flickr

我试图使用API​​下载自己的flickr相册。我正在使用flickr.rb gem here 我正在使用它创建一个新对象:

@flickr = Flickr.new({api_key: 'xxxxx', shared_secret: 'xxxxx', verify_ssl: false})

然后我使用:

p = @flickr.photoset(photoset_id)

我通过我想要下载的照片集的ID。 我一直收到错误:

/.rvm/gems/ruby-2.2.5/gems/flickr.rb-1.2.1/lib/flickr.rb:199:in `request': Photoset not found (RuntimeError)

对Flickr进行身份验证并下载照片的正确方法是什么?我不想构建任何UI,只是想要一个命令行应用程序来执行此操作。我需要在浏览器中点击一些URL来授权应用并授予权限吗?文档非常稀疏,并没有给出任何示例。

更新:回应@ r-f-nelson

'用户'检索:

#Flickr::User:0x007fd8cea6ad98 @id="29916617@N02", @username="taraporefarhad", @client=#<Flickr:0x007fd8cf09fc68 @host="https://api.flickr.com", @api="/services/rest", @verify_ssl=false, @api_key="36705xxxxxxxxxxxxxxx", @shared_secret="xxxxxxxxxxxxxx", @auth_token=nil, @ca_file=nil

&#39; flickr&#39;客户对象:

#Flickr:0x007fd8cf09fc68 @host="https://api.flickr.com", @api="/services/rest", @verify_ssl=false, @api_key="36705xxxxxxxxxxxxxxx", @shared_secret="xxxxxxxxxxxxxx", @auth_token=nil, @ca_file=nil, @user=#

Flickr::User:0x007fd8cea6ad98 @id="29916617@N02", @username="taraporefarhad", @client=#<Flickr:0x007fd8cf09fc68 ...

Photoset对象:

#Flickr::Photoset:0x007fd8cf06c9d0 @id="72157638843727066", @api_key=nil, @client=#<Flickr:0x007fd8cf06c8b8 @host="https://api.flickr.com", @api="/services/rest", @verify_ssl=true, @api_key=nil, @shared_secret=nil, @auth_token=nil, @ca_file=nil
/.rvm/gems/ruby-2.2.5/gems/flickr.rb-1.2.1/lib/flickr.rb:199:in `request': Invalid API Key (Key has invalid format) (RuntimeError)

上面注意到&#34; photoset&#34; object有一个不同的flickr客户端对象id和NO共享密钥和API密钥!由于我使用相同的客户端和用户对象来获取照片集,所以不确定这是怎么回事。

1 个答案:

答案 0 :(得分:0)

假设您已成功连接到Flickr的API,您可以浏览自己的照片集:

user = flickr.users('you@yourflickraccount.com') photosets = user.photosets

从那里你可以遍历你的照片以找到正确的照片。我猜你正在使用的id不是Flickr API使用的实际photoset_id