0

我在 Windows Phone 7 上创建了本机应用程序。

该应用程序的用户在注册为新用户时将向我们提供他的登录凭据。我想要做的是在我的应用程序中在 facebook 上提供一个共享句柄。

单击句柄时,应将所选图像发布到用户的墙上,并向用户显示图像是否成功发布的消息。

问题是 facebook 没有为 Windows Phone 7 原生应用程序提供开发环境。

我想要一些替代解决方案。

4

1 回答 1

0

感谢您的链接。我之前已经访问过该链接。我已经在 wp7 中实现了 facebook 集成。它工作正常,我可以制作墙柱。

这是我的代码,

//用户点击在facebook上分享按钮

私人无效btnFacebookPost_Click(对象发送者,RoutedEventArgs e){

       //Check if access tokens are already set.
        if (App.accessTokens == null)
        {
            GetAccessTokens();
        }
        else
        {
            //Use the access tokens to post on facebook
        }

    }

私人无效GetAccessTokens(){

       // Navigate user to facebooks login page
       // if user has already authenticated your app you'll receive the access tokens directly


        webBrowser.Source = new Uri("https://www.facebook.com/dialog/oauth?client_id='your app id'&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope='whatever extended permissions you require'");

    }

//在 Web 浏览器的导航事件中检查访问令牌 //使用 facebook c# sdk 从 url 获取访问令牌

void webBrowser_Navigated(对象发送者,System.Windows.Navigation.NavigationEventArgs e){

        FacebookClient fbClient = new FacebookClient();

            FacebookOAuthResult oauthResult;
            if (fbClient.TryParseOAuthCallbackUrl(e.Uri, out oauthResult))
            {
                // The url is the result of OAuth 2.0 authentication
                if (oauthResult.IsSuccess)
                {

                    App.accessTokens = oauthResult.AccessToken;

                }
                else
                {

                    var errorDescription = oauthResult.ErrorDescription;
                    var errorReason = oauthResult.ErrorReason;
                }
            }
            else
            {
                // The url is NOT the result of OAuth 2.0 authentication.
            }

      }

现在将访问令牌与用于 C#.net 的 facebook sdk 一起使用,以根据需要进行墙贴或任何其他交易。

这种方法的问题是应用程序用户和 facebook 的登录用户可能不同,因此向不同的帐户进行交易。由于 WP7 的 SSO 不可用,这种方法应该可以解决问题。

于 2012-05-25T06:47:19.907 回答