Facebook-C # -SDK не остановит "вход в систему" - PullRequest
0 голосов
/ 17 февраля 2011

Я пытаюсь создать Facebook WebApp в vb.net, используя Facebook C # SDK.SDK можно использовать для vb.net, это я знаю.Однако я пытаюсь заставить мое приложение войти в систему при загрузке страницы.Я могу получить его для входа в систему, однако мое приложение не распознает, что оно вошло в систему, и продолжает повторять цикл входа в систему снова, пока я не остановлю его.Вот мой код.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim faceauth As New FacebookClient
    Dim fbsession As New FacebookSession
    If faceauth.AccessToken.Length = 0 Then
        Dim appId As String = ConfigurationManager.AppSettings("facebookappid")
        Dim extendedPermissions As String() = {"publish_stream", "offline_access", "read_stream", "manage_pages"}
        Dim oauth = New FacebookOAuthClient() With { _
         .ClientId = appId _
        }
        fbsession.Expires = Now.AddDays(1)
        Dim parameters = New Dictionary(Of String, Object)() From { _
         {"response_type", "code_and_token"}, _
         {"display", "popup"}, _
         {"redirect_uri", "http://newsocialspin.spintest.com/fbcsb.aspx"} _
        }
        If extendedPermissions IsNot Nothing AndAlso extendedPermissions.Length > 0 Then
            Dim scope = New StringBuilder()
            scope.Append(String.Join(",", extendedPermissions))
            parameters("scope") = scope.ToString()
        End If
        Dim loginUrl = oauth.GetLoginUrl(parameters)
        Response.Redirect(loginUrl.ToString)
    Else
        LoggedIn()
    End If
End Sub

Я пробовал бесчисленное множество различных методов, чтобы заставить его распознать зарегистрированный статус безрезультатно.Если у вас есть идеи, которые могут быть полезны, пожалуйста, дайте мне знать, или, если вы разработчик, пожалуйста, исправьте мою очевидную ошибку.Спасибо.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011

Вы создаете новый FacebookClient при каждой загрузке страницы, включая перенаправленные.Таким образом, ваша проверка на faceauth.AccessToken.Length всегда верна.Вам понадобится файл cookie или значение сеанса, которое сохранит перенаправление и будет соответствующим образом обновляться при входе через Facebook.

0 голосов
/ 17 февраля 2011

Взгляните на это обсуждение , которое мне помогло.По сути, вам нужно убедиться, что вы используете последнюю версию SDK и что приложение Facebook правильно настроено для использования подписанного запроса (который, конечно, вы должны предоставить).

...