1

スナップチャットのストーリーをダウンロードするプログラムを作成しています。この:

base64.b64decode(snap['media_iv']))

エラーが発生していますError: Incorrect padding

実際の media_iv は次のとおりです。GhcakENDGbTNY6GzE1AV3w==


from __future__ import print_function

import os.path
import sys
from getpass import getpass
import base64
from pprint import pprint

from docopt import docopt
from Tkinter import *

from pysnap import get_file_extension, Snapchat

def printsnaps():
    s = Snapchat()
    s.login(u.get(), p.get())
    for snap in s.get_friend_stories():
        pprint(snap)
        path = snap["id"]
        data = s.get_story_blob(snap['media_id'],
            base64.b64decode(snap['media_key']),
            base64.b64decode(snap['media_iv']))
        if data is None:
            continue
        with (openpath, 'wb') as f:
            f.write(data)
top = Tk()
u = StringVar()
p = StringVar()
user = Entry(top, text="usermame", textvariable=u)
user.pack()
pswd = Entry(top, text="password", textvariable=p)
pswd.pack()
logb = Button(top, text="login", width = 15, command=printsnaps)
logb.pack()

top.mainloop()

解決策: チュートリアルが間違っていました。デコードする必要はありませんでした

4

1 に答える 1

1

文字列の継承されたデコード メソッドを使用してみてください。

str(snap['media_iv']).decode('base64')

私はそれをデコードしようとしましたが、SnapChat の場合には起こらないはずの、一連のバイナリナンセンスにデコードされます。おそらく、指定した値が正しくありません。

于 2015-01-17T14:36:43.680 に答える