帮助生成Facebook API“;Sig";用Python

帮助生成Facebook API“;Sig";用Python,python,google-app-engine,facebook,Python,Google App Engine,Facebook,我已经为此挣扎了两天多,我需要你的帮助。问题是: 无论何时向Facebook REST服务器发出请求,我们都必须发送一个名为“sig”的附加参数。此sig使用以下算法生成: <?php $secret = 'Secret Key'; // where 'Secret Key' is your application secret key $args = array( 'argument1' => $argument1, 'argument2' => $argument2);

我已经为此挣扎了两天多,我需要你的帮助。问题是:

无论何时向Facebook REST服务器发出请求,我们都必须发送一个名为“sig”的附加参数。此sig使用以下算法生成:

<?php

$secret = 'Secret Key'; // where 'Secret Key' is your application secret key 
$args = array(
'argument1' => $argument1,
'argument2' => $argument2); // insert the actual arguments for your request in place of these example args 
$request_str = '';
foreach ($args as $key => $value) {
$request_str .= $key . '=' . $value; // Note that there is no separator.
}
$sig = $request_str . $secret;
$sig = md5($sig);

?>
facebook_paremeter.parameters是一个如下所示的列表:

[('api_key', '...'), ('v', '1.0'), ('format', 'JSON'), ('method', '...')]
facebook_paremeter.application_secret是一个有效的应用程序机密

这段代码是在谷歌应用引擎开发平台上运行的(如果这有什么区别的话)。Python 2.6.4


有人能帮我找出我的代码哪里出错了吗

谢谢,
Sri必须对列表进行排序。

到底是什么问题?生成签名。我想你把它附在请求上了。你得到了什么结果?你期待什么?对键/值的顺序是否有任何要求?(通常有一些)下面是回应:{“error_code”:104,“error_msg”:“签名不正确”,“请求参数”:[{“key”:“api_key”,“value”:“…”},{“key”:“v”,“value”:“1.0”},{“key”:“format”,“value”:“JSON”},{“key”:“method”,“value”:“…”},{“key”:“sig”,“value”:“…”}}就是这样,我必须在生成列表之前对参数进行排序。请将其作为问题的答案发布。
[('api_key', '...'), ('v', '1.0'), ('format', 'JSON'), ('method', '...')]