2012-03-22 45 views
2

當facebook將我的應用程序加載到iframe中時,我在POST數據中獲得了signed_request參數,然後我將該部分放在「。」之後。並使用base64解碼以獲取簽名請求的json字符串表示。不完整的簽名請求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是正確的,完整的,但隨後的字符串的其餘部分缺少結束雙引號和右括號。 每當我現在使用我的應用程序時,都會發生這種情況,這是在沙箱模式下。

爲什麼會發生這種情況的任何想法? 謝謝。


編輯

我檢查,這不是在我的計劃有些解碼錯誤,我複製了被張貼的內容,並在online decoder檢查,並得到完全相同的結果。

字符串jsonString =新字符串(Base64.decodeBase64(有效載荷:

+0

嗨,既然你能解碼signed_request,你能否建議我該怎麼做。我無法做到這一點,這裏是我的問題http://stackoverflow.com/questions/9917547/unable-to-decode-facebook-signed-request – pal4life 2012-03-29 00:31:58

+0

我在我的生產環境中具有完全相同的問題(非沙箱模式),但不在開發環境(沙箱模式),非常奇怪...請更新,如果你有任何解決方案! – DaveB 2012-03-31 21:38:17

回答

1

我通過更新到公共編解碼器1.6

+0

什麼?你是說這是我用的解碼器的問題嗎?但是我測試過的在線解碼器給出了相同的確切結果,他們是否也使用了故障解碼器? (我會測試你在說什麼,但是需要一些時間才能讓我的環境做好準備) – 2012-04-02 10:47:12

+1

我遇到了同樣的問題,我很容易更新公共編解碼器庫,但是你可以手動添加字符。看看這裏http://qugstart.com/blog/ruby-and-rails/facebook-base64-url-decode-for-signed_request/ – DaveB 2012-04-02 22:36:08

+0

感謝您的信息。我沒有真正測試過你在說什麼(使用編解碼器1.6),並且需要一些時間才能實現。添加缺少的字符是我所做的,但它不是一個解決方案,更像是一種解決方法。 – 2012-04-02 23:41:52

1

這爲我工作(修剪字符串和添加的後托架)解決了這個相同的問題。的getBytes()))修剪(); jsonString = jsonString +「}」;

相關問題