Помогите сгенерировать Facebook API "Sig" в Python - PullRequest
0 голосов
/ 15 февраля 2010

Я боролся с этим более двух дней, и я мог бы использовать вашу помощь. Вот проблема:

Всякий раз, когда делается запрос на REST-сервер Facebook, мы должны отправить дополнительный параметр, называемый "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);

?>

Подробнее об этом: http://wiki.developers.facebook.com/index.php/How_Facebook_Authenticates_Your_Application

Я пытался воспроизвести этот фрагмент кода на Python, вот моя попытка:

def get_signature(facebook_parameter):
    sig = ""
    for key, value in facebook_parameter.parameters:
        sig += key + "=" + value
    sig += facebook_parameter.application_secret
    return hashlib.md5(sig).hexdigest()

facebook_paremeter.parameters - это список, который выглядит следующим образом:

[('api_key', '...'), ('v', '1.0'), ('format', 'JSON'), ('method', '...')]

и facebook_paremeter.application_secret является действительным секретом приложения.

Этот код работает на платформе разработки Google App Engine (если это имеет значение). Python 2.6.4.


Может кто-нибудь помочь мне выяснить, где мой код работает неправильно?

Спасибо, Шри

1 Ответ

1 голос
/ 16 февраля 2010

Список должен быть отсортирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...