0

我们的应用程序使用此代码工作(是否可以将参数传递给通过选项卡访问的 FB 应用程序的回调 URL?),但是当没有传入 app_data 参数时会出现问题。这是一个示例我们的意思:

工作正常:(“测试”写得很好) https://www.facebook.com/phillypours/app_397493550309543?app_data=test

不工作: https ://www.facebook.com/phillypours/app_397493550309543

与 Base64 编码和 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”做任何事情,因为这是引发错误的原因。

任何帮助将不胜感激!!!

谢谢你。

丹尼斯

4

1 回答 1

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
于 2013-04-17T20:58:12.270 回答