我尝试用API Python将照片上传到flickr,但是我得到了以下错误:
错误的code="100“msg=无效的API键(密钥格式无效)
我认为Flickr是经过身份验证的,因为我将更简单的函数称为同样需要身份验证为flickr.photos.getInfo、flickr.photos.getPerms或flickr.photos.geo.setLocation的函数,并且没有问题地返回结果。
这是我的密码:
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文件,但为了证明我所做的是一个静态值。
知道有什么问题吗?
感谢你的帮助。
问候
发布于 2016-07-13 20:59:07
我猜你在使用https://stuvel.eu/flickrapi的API
如果是这样的话,文档会说API键和机密需要是unicode字符串(https://stuvel.eu/flickrapi-doc/2-calling.html),所以您需要在文字前加上'u‘。
即
api_key = u'xxxxxxx'
api_secret = u'xxxxxxx'发布于 2019-03-12 09:39:29
如果您使用的是https://stuvel.eu/flickrapi,那么您应该使用flickr.upload。
如果没有,则需要在上传照片的电话上签名,我看不出您在引用照片时实际上传了照片数据:
result = requests.post('https://up.flickr.com/services/upload/', data = {'photo':'photo', 'title':'title', 'description':'description', 'tags':'tags'})有关python示例和Flickr文档,请参见uploader.py。
https://stackoverflow.com/questions/38361312
复制相似问题