访问Flickr API方法

时间:2018-04-14 11:04:11

标签: python api flickr

我正在尝试创建一个基于标签下载Flickr图像的脚本。我在网上找到了这样的脚本,但是由于我的脚本无法访问Flickr API函数,所以它们无法正常工作。

private void OnDisable ()
{
    RawKeyInput.OnKeyUp -= HandleKeyUp;
    RawKeyInput.OnKeyDown -= HandleKeyDown;
}

我得到的结果是:

import flickr_api


print(flickr_api.__version__)
api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
api_secret = 'YYYYYYYYYYYYYYYYYYYYYYY'

flickr = flickr_api.FlickrAPI(api_key, api_secret)
photos = flickr.photos.search(user_id='73509078@N00', per_page='10')

我很困惑,因为API文档几乎包含同一段代码(https://stuvel.eu/flickrapi-doc/2-calling.html

我是否错误地安装了API?

  • API位于:C:\ Users \ Myname \ Anaconda3 \ Lib \ site-packages \ flickr_api

  • print(flickr_api。版本)会返回flickr_api的版本,所以看起来我的脚本至少可以找到该文件夹​​了吗?

我是Python中的笨蛋,这是我第一次使用API​​,因此对基本问题表示道歉!

1 个答案:

答案 0 :(得分:0)

您的问题是“如何开始使用适用于Python的Flickr API?”

我正在Stuvel的PyPi中使用稍新的2.4版本。您可以找到它here。在此版本中,flickr和api之间没有下划线。

我帐户中的所有照片都没有使用标签。相反,我将使用文本搜索。您应该查看以下内容的工作原理,然后尝试标签搜索。

此外,我将返回解析的json而不是默认的xml。这样做的好处是可以获取嵌套的字典,这些字典在Python中非常容易解析和循环。

以下内容在Spyder中工作-Anaconda中的交互式外壳。这个未签名的通话显示了我的公开照片。您应该得到相同的结果。

import flickrapi

FLICKR_PUBLIC = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'

FLICKR_SECRET = 'XXXXXXXXXXXXXXX'

flickrapi.__version__
Out[4]: '2.4.0'

flickr = flickrapi.FlickrAPI(FLICKR_PUBLIC,FLICKR_SECRET,format='parsed-json')

MYSTUFF = "157919153@N05"

MyAtkinsons = flickr.photos.search(text="Atkinson", 
    user_id = MYSTUFF,
    extras="description")

MyAtkinsons['photos']
Out[8]: 
{'page': 1,
 'pages': 1,
 'perpage': 100,
 'total': '7',
 'photo': [{'id': '50109797342',
   'owner': '157919153@N05',
   'secret': 'a7d95d8c17',
   'server': '65535',
   'farm': 66,
   'title': 'Atkinson, Everett W. and Olive E.',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Atkinson, Everett W. and Olive E.'}},
  {'id': '50109558361',
   'owner': '157919153@N05',
   'secret': 'bd2eb4e88f',
   'server': '65535',
   'farm': 66,
   'title': 'Atkinson, Jon Wesley',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Atkinson, Jon Wesley'}},
  {'id': '46978210785',
   'owner': '157919153@N05',
   'secret': '299b85c928',
   'server': '65535',
   'farm': 66,
   'title': '17azg7nf6jtz6',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Atkinson, Lawrence M.'}},
  {'id': '47105017914',
   'owner': '157919153@N05',
   'secret': 'cfb49d8c5b',
   'server': '65535',
   'farm': 66,
   'title': 'Atkinson, James L. and Florence',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Atkinson, James L. and Florence'}},
  {'id': '47104538484',
   'owner': '157919153@N05',
   'secret': '7d52705223',
   'server': '65535',
   'farm': 66,
   'title': '17bcqb9d4n66q',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Robbins, Vera M. Atkinson'}},
  {'id': '47893343811',
   'owner': '157919153@N05',
   'secret': 'eed21d5a5c',
   'server': '65535',
   'farm': 66,
   'title': '17be28jy5r95u',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Atkinson, Catherine M. and Lew H.'}},
  {'id': '47086890614',
   'owner': '157919153@N05',
   'secret': '1e16987f8b',
   'server': '65535',
   'farm': 66,
   'title': '17bds2q7ui24y',
   'ispublic': 1,
   'isfriend': 0,
   'isfamily': 0,
   'description': {'_content': 'Atkinson, James'}}]}

我的帐户中有7张阿特金森照片,到今天为止都可以向公众开放。

如果需要标签,请将其添加到extras参数。我只是使用从'id'解析的照片的默认分辨率,所以我不需要在extras参数中请求URL。