首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用API Flickr Python将照片上传到Flickr

用API Flickr Python将照片上传到Flickr
EN

Stack Overflow用户
提问于 2016-07-13 20:41:25
回答 2查看 1K关注 0票数 0

我尝试用API Python将照片上传到flickr,但是我得到了以下错误:

错误的code="100“msg=无效的API键(密钥格式无效)

我认为Flickr是经过身份验证的,因为我将更简单的函数称为同样需要身份验证为flickr.photos.getInfo、flickr.photos.getPerms或flickr.photos.geo.setLocation的函数,并且没有问题地返回结果。

这是我的密码:

代码语言:javascript
复制
import flickrapi
import csv
import requests

api_key = 'xxxxxxx'
api_secret = 'zzzzzzzz'
flickr = flickrapi.FlickrAPI(api_key, api_secret)
flickr.authenticate_via_browser(perms='delete')

def uploadPhoto(path_photo, title, description, tags):
    result=False;
    with open(path_photo, 'rb') as f:
        photo = {'file': f}
        try:    
            result = requests.post('https://up.flickr.com/services/upload/', data = {'photo':'photo', 'title':'title', 'description':'description', 'tags':'tags'})
            print(result.text)
        except Exception as error:
            print('Upload photo', error, '--- o --- titulo malo -> ', title)        
    return result

with open('/home/labsis06/djandoprojects/generales.csv') as csvfile:
    spamreader = csv.DictReader(csvfile, delimiter=';')
    #for row in spamreader:
    try:
        path_photo = '/home/labsis06/djandoprojects/Fotos_flickr/Phaeophytas4024/4024.55.165_C_sinuosa_000_01_600_778x820.jpg'
        title = 'C_sinuosa_000_01_600_778x820.jpg'
        description = 'Nombre Especie: Colpomenia sinuosa (Mertens ex Roth) Derbès y Solier . Descripción: Sartedemie'
        tags = 'OCHROPHYTA'+','+'Phaeophyceae'+','+'Scytosiphonaceae'+','+'Colpomenia'
        print("Ingresando fotos: result: "+str(uploadPhoto(path_photo, title, description, tags)))
    except Exception as error:
        print('Abiendo csv', error)

我有一组图片(大约3000张图片),我想上传一个csv文件,但为了证明我所做的是一个静态值。

知道有什么问题吗?

感谢你的帮助。

问候

EN

回答 2

Stack Overflow用户

发布于 2016-07-13 20:59:07

我猜你在使用https://stuvel.eu/flickrapi的API

如果是这样的话,文档会说API键和机密需要是unicode字符串(https://stuvel.eu/flickrapi-doc/2-calling.html),所以您需要在文字前加上'u‘。

代码语言:javascript
复制
api_key = u'xxxxxxx'
api_secret = u'xxxxxxx'
票数 1
EN

Stack Overflow用户

发布于 2019-03-12 09:39:29

如果您使用的是https://stuvel.eu/flickrapi,那么您应该使用flickr.upload

如果没有,则需要在上传照片的电话上签名,我看不出您在引用照片时实际上传了照片数据:

代码语言:javascript
复制
    result = requests.post('https://up.flickr.com/services/upload/', data = {'photo':'photo', 'title':'title', 'description':'description', 'tags':'tags'})

有关python示例和Flickr文档,请参见uploader.py

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38361312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档