1

我正在使用 Facebook C# SDK 与我的 funpage 交互,我编写了一个 ASP NET vb 页面,在 fun page 墙上发布照片,它在我的本地机器上运行良好,但是当我尝试执行页面时收到此错误我的网站:

尝试通过方法“DynamicClass.CallSite.Target(System.Runtime.CompilerServices.Closure, System.Runtime.CompilerServices.CallSite, System.Object)”访问类型“System.Runtime.CompilerServices.CallSite`1”失败。

当我尝试使用我的页面访问令牌对数组进行循环时会发生这种情况。(我/帐户)

下面的代码在 _step = 3 之后生成此错误:

    Dim app As New FacebookClient(access_token)
    _step = 1
    Dim accts As Object = app.Get("/me/accounts")
    _step = 2
    ' find the access token for the fan page
    Dim page_access_token As String
    _step = 3

    For Each acct As Object In accts.data
        _step = 4

        If acct.id = Session("page_id").ToString() Then
            _step = 5
            page_access_token = acct.access_token
            '  get_album(page_access_token);
            _step = 6
            Dim fb As New FacebookClient(page_access_token)
            _step = 7
            Session.Add("page_access_token", page_access_token)
            Exit For
        End If
    Next 

我在网上看到我的托管服务将服务器信任级别设置为中。希望有人能帮我解决这个问题。

4

1 回答 1

0

我在将我的网站发布到 Aruba 服务器时遇到了同样的问题。我在访问它之前解决了它投射从 Facebook 检索到的动态对象。

在您的代码中,您有:

For Each acct As Object In accts.data

但是 accts 只是一个对象,Aruba 阻止访问其 .data 元素

尝试创建包含您希望从 FB 收到的所有元素的类。

Public Class fbcls_accts
    Public data() As fbcls_image
End Class

Public Class fbcls_image
    Public height As Integer
    Public width As Integer
    Public source As String
End Class

然后使用 JavaScriptSerializer 将您的对象转换为最终类型:

result = (New JavaScriptSerializer().ConvertToType(Of fbcls_accts)(accts))
于 2014-12-05T14:05:56.790 回答