0

我对 Python 很陌生,我正在使用一个最近开始需要 url 签名的 API。我被告知,在 PHP 中,将签署 url 的代码如下所示:

function signUrl($url, $post = null)
{
if ($post !== null) { ksort($post); }
return md5(YourSecretApiKey . $url . ($post === null ? '' : implode(',', $post)));
}

我如何在 Python 中做到这一点?

这是我的 Python 代码:

import wykop

appkey = 'KEY'
secretkey = 'KEYa'

api = wykop.WykopAPI(appkey)
profile = api.get_profile("m__b")
print api.get_profile("m__b")

我得到一个错误:

wykop.InvalidAPISignError
4

1 回答 1

0

这是那部分 PHP 代码的 Python 版本

import hashlib
# Ready for md5

def signUrl(url, post=None):

  # Set default. Empty for not provided
  post_string = ''

  if post is not None:

    # Dictionary in Python does not maintain order 
    # Sort it manually with a for loop instead
    post = [post[k] for k in sorted(post.keys())]

    post_string = ','.join(post)
    # PHP implode

  return hashlib.md5(YourSecretApiKey + url + post_string).hexdigest()
于 2013-05-27T06:20:15.350 回答