【发布时间】:2017-04-26 22:42:58
【问题描述】:
我正在尝试下载发送到我的 Twilio 帐户的所有媒体,但我终其一生都无法弄清楚如何访问实际图像。
from twilio.rest import Client
import requests
from operator import itemgetter
import json
ACCOUNT_SID = "xxxxxxx"
AUTH_TOKEN = "xxxxxxxx"
client = Client(ACCOUNT_SID, AUTH_TOKEN)
# builds a list of messages and media uris
messages = client.messages.list(from_="+19999999999")
msgs = []
for m in messages:
line = [m.from_, m.to, m.body, m.sid, m.subresource_uris['media']]
line = [str(x) for x in line]
msgs.append(line)
# with list of all messages:
msgs = sorted(msgs, key=itemgetter(0))
for m in msgs:
# get media list for each message that has one, else catch exception
try:
medias = client.messages(m[3]).media.list()
# returns Twilio.Api.V2010.MediaInstance and i'm stuck
for med in medias:
print client.messages(m[3]).media(med.sid).fetch()
except Exception as e:
pass
我只是迷路了,在文档中找不到任何具体示例。我真的不知道我是接近了,还是哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇。提前致谢!
解决方案感谢 philnash 从 twilio.rest 导入客户端 导入请求 导入json
# Find these values at https://twilio.com/user/account
ACCOUNT_SID = "xxxxx"
AUTH_TOKEN = "xxxxxx"
BASE_URL = "https://%s:%s@api.twilio.com" % (ACCOUNT_SID, AUTH_TOKEN)
client = Client(ACCOUNT_SID, AUTH_TOKEN)
# with list of all messages:
messages = client.messages.list(from_="+1999999999")
for m in messages:
sid = m.sid
# get media list for each message that has one, else catch exception
try:
message = client.messages(sid).fetch()
print message.body
medias = message.media.list()
# returns Twilio.Api.V2010.MediaInstance and i'm stuck
for media in medias:
media_instance = client.messages(sid).media(media.sid).fetch()
uri = requests.get(BASE_URL + media_instance.uri).json()
uri2 = requests.get(BASE_URL + uri['uri'].replace('.json', ''))
with open(media_instance.uri.split("/")[-1].replace(".json", ".png"), "wb") as f:
f.write(uri2.content)
f.close()
except Exception as e:
print e
【问题讨论】:
-
您从该代码中得到了什么错误?
-
就是这样。我没有收到错误消息,我只是一直进入这个 URI 循环,而实际上从未到达可以下载照片的地方。没有错误,只是令人困惑。
-
以上代码返回一堆MediaInstance对象:
-
那些对象有一个 uri,当我调用它时,我得到 `` {u'parent_sid': u'MMxxxxx', u'date_updated': u'Wed, 26 Apr 2017 21:20:30 +0000', u'uri': u'/2010-04-01/Accounts/ACdxxxxx/Messages/MMxxxxx/Media/MExxxxx.json', u'account_sid': u'ACxxxxx4', u'content_type': u' image/jpeg', u'sid': u'MExxxxx4', u'date_created': u'Wed, 26 Apr 2017 21:20:30 +0000'}``
标签: python api mobile twilio mms