2013-04-17 49 views
0

我們的應用程序使用此代碼工作(Is it possibile to pass parameters to the callback URL of a FB app which is accessed through a tab?),但是當沒有傳入app_data參數時會出現此問題。我們的意思:Facebook和經典ASP - 將自定義參數傳遞給粉絲頁面標籤 - 無數據錯誤

正常工作:( 「測試」 被寫入了罰款) https://www.facebook.com/phillypours/app_397493550309543?app_data=test

不起作用:用Base64編碼,使用 https://www.facebook.com/phillypours/app_397493550309543

代碼& JSON解碼:

myArray = Split(Request("signed_request"), ".") 
encoded_sig = myArray(0) 
payload = myArray(1) 
sig = base64_decode(Replace(encoded_sig, "-_", "+/")) 
set data = JSON.parse(base64_decode(Replace(payload, "-_", "+/"))) 
Response.Write data.app_data 

這是在沒有參數傳遞,我們收到錯誤:

Object doesn't support this property or method: 'data.app_data' 

人對如何任何想法陷阱呢?我無法對「data.app_data」做任何事情,因爲這是拋出錯誤的原因。

任何幫助將不勝感激!

謝謝。

Dennis

回答

0

我找到了解決此問題的方法。想要分享給別人可能會受益。謝謝丹尼斯

<!--#INCLUDE VIRTUAL="/includes/fb_base64.asp"--> 
<!--#INCLUDE VIRTUAL="/includes/fb_json_decode.asp"--> 

Function parsePageSignedRequest() 
    If Request("signed_request") <> "" Then 
     myArray = Split(Request("signed_request"), ".") 
     payload = myArray(1) 
     payload_decoded = base64_decode(payload) 
     set data = JSON.parse(payload_decoded) 

     If instr(payload_decoded,"""app_data""") Then 
      AppData = data.app_data 
     End If 
     If instr(payload_decoded,"liked"":true,") Then 
      LikeStatus = True 
     End If 
    End If 
End Function