2013-04-17 47 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