Неполная подписанная строка запроса json? - PullRequest
2 голосов
/ 22 марта 2012

Когда facebook загружает мое приложение в iframe, я получаю в данных POST параметр signature_request, а затем принимаю участие после "." и декодировать его с помощью base64, чтобы получить строковое представление json подписанного запроса.

По какой-то причине строка json, которая декодируется из подписанного запроса, является неполной и выглядит так (отформатирована для удобства чтения):

{
    "algorithm": "HMAC-SHA256",
    "expires": xxxxxxxxxxx,
    "issued_at": xxxxxxxxxx,
    "oauth_token": "xxxxxxxxxxxxxxxxxxxxxxxx",
    "user": {
        "country": "il",
        "locale": "en_US",
        "age": {
            "min": 21
        }
    },
    "user_id":"xxxxxxxxx

user_id является правильным и полным, но в остальной части строки отсутствуют закрывающая двойная кавычка и закрывающая скобка. Это происходит со мной каждый раз, когда мое приложение работает в режиме песочницы.

Есть идеи, почему это происходит? Спасибо.


Редактировать

Я проверил, что это не какая-то ошибка декодирования в моей программе, я скопировал содержание, которое публикуется, и проверил его в онлайн-декодере и получил точно такой же результат.

Ответы [ 2 ]

1 голос
/ 25 января 2013

Это сработало для меня (обрезка строки и добавление завершающей скобки):

String jsonString = new String (Base64.decodeBase64 (payload.getBytes ())). Trim (); jsonString = jsonString + "}";

1 голос
/ 02 апреля 2012

Я решил эту же проблему, обновив кодек Commons 1.6

.
...