擅长:python、mysql、java
<p><strong>由于更新,</strong>已编辑。您在<code>verify_signature</code>上得到一个错误。在</p>
<p>{a1}的定义:</p>
<pre><code>def verify_signature(self, request_data, signature):
return signature == self._calculate_message_signature(request_data)
</code></pre>
<p>你给那里发了一个<code>request.headers.get('X-Viber-Content-Signature')</code>作为一个`签名。因此,您的解决方案是检查“计算”消息“签名”(请求“数据”)的结果</p>
<p>所需数据=request.get_数据()对你来说。在</p>
<p><code>_calculate_message_signature</code>的定义是:</p>
^{pr2}$
<p>我会检查您的<code>auth_token</code>,它在<code>self._bot_configuration.auth_token.encode('ascii')</code>中使用。它包括非ascii字符吗?如果是,那么你有理由。(例如)</p>
<p>尝试比较以下结果:</p>
<pre><code>hmac.new(bytes(self._bot_configuration.auth_token.encode('ascii')),
msg=request.get_data(),
digestmod=hashlib.sha256).hexdigest()
</code></pre>
<p>收件人:</p>
<p><code>request.headers.get('X-Viber-Content-Signature')</code>这是不同的,这就是为什么你得到禁止消息。在</p>