首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用推特的Xamarin.Auth

使用推特的Xamarin.Auth
EN

Stack Overflow用户
提问于 2013-04-24 02:00:52
回答 1查看 1.4K关注 0票数 3

我正在尝试使用Facebook和Twitter实现登录。我把它用在Facebook上,但不知道怎么用Twitter。有没有什么例子?我的Facebook实现是这样的:

代码语言:javascript
复制
var auth = new OAuth2Authenticator(
    clientId: "*****************",
    scope: "email",
    authorizeUrl: new System.Uri("https://m.facebook.com/dialog/oauth/"),
    redirectUrl: new System.Uri("http://www.facebook.com/connect/login_success.html"));

StartActivity(auth.GetUI(this));

auth.Completed += (senderFb, eventArgs) =>
{
    if (eventArgs.IsAuthenticated)
    {
        AccountStore.Create(this).Save(eventArgs.Account, "Facebook");

        // Now that we're logged in, make a OAuth2 request to get the user's info.
        var request = new OAuth2Request("GET", new System.Uri("https://graph.facebook.com/me"), null, eventArgs.Account);

        request.GetResponseAsync().ContinueWith(t =>
        {
            if (!t.IsFaulted && !t.IsCanceled)
            {
                var obj = JsonValue.Parse(t.Result.GetResponseText());
                if (obj != null)
                {
                    var user = new UserProfile
                        {
                            FirstName = obj["first_name"],
                            LastName = obj["last_name"],
                            FacebookProfileLink = obj["link"],
                            FacebookToken = eventArgs.Account.Properties["access_token"],
                            Gender = obj["gender"] == "female" ? "Female" : "Male",
                            EmailAddress = obj["email"],
                            DisplayName = obj["name"],
                            Name = obj["name"],
                            LoginName = obj["email"]
                        };
                    SignUpUser(user);
                }
            }
        }, uiScheduler);
    }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 16:12:11

您可以像这样使用oauth1。

代码语言:javascript
复制
 this.Authenticator = new OAuth1Authenticator (ConsumerKey, ConsumerSecret, RequestTokenUrl, AuthorizeUrl, AccessTokenUrl, DummyCallBackUrl, (IDictionary<string, string> accountProperties) => {
   string screen_name = "";
   if (accountProperties.TryGetValue("screen_name", out screen_name)) {
      Account a = new Account(screen_name, accountProperties);
      AuthenticatorCompletedEventArgs e = new AuthenticatorCompletedEventArgs(a);
      CompleteAuthentication(e);
   }
   return null;
});

twitter api不完全支持OAuth2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16176078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档