2012-06-17 34 views
5

Tôi đang cố xác thực tài khoản người dùng trong Windows Phone. Tôi tìm thấy thư viện C# này cho công việc (tweetsharp).Xác thực Twitter mà không cần sử dụng pin

Ví dụ của họ khá rõ ràng nhưng họ sử dụng mã pin để xác thực người dùng.

using TweetSharp; 

// Pass your credentials to the service 
TwitterService service = new TwitterService("consumerKey", "consumerSecret"); 

// Step 1 - Retrieve an OAuth Request Token 
OAuthRequestToken requestToken = service.GetRequestToken(); 

// Step 2 - Redirect to the OAuth Authorization URL 
Uri uri = service.GetAuthorizationUri(requestToken); 
Process.Start(uri.ToString()); 

// Step 3 - Exchange the Request Token for an Access Token 
string verifier = "123456"; // <-- This is input into your application by your user 
OAuthAccessToken access = service.GetAccessToken(requestToken, verifier); 

// Step 4 - User authenticates using the Access Token 
service.AuthenticateWith(access.Token, access.TokenSecret); 
IEnumerable<TwitterStatus> mentions = service.ListTweetsMentioningMe(); 

Tôi đã tự hỏi liệu có thể thực hiện điều này nếu không có mã pin? Tôi đã thử các ứng dụng không yêu cầu mã. Điều này có nghĩa là tweetsharp đã lỗi thời?

Bất kỳ ý tưởng nào nếu tôi vẫn có thể thực hiện xác thực bằng tweetsharp mà không cần sử dụng phần pin? Hoặc là có bất kỳ SDK thay thế ra khỏi đó cho cửa sổ điện thoại?

Trả lời

1

On TweetSharp trang còn được nhắc đến xAuth:

Nếu bạn đang xây dựng một ứng dụng di động và muốn hưởng lợi từ một kinh nghiệm xác thực liền mạch không có các bước bổ sung cho người sử dụng , bạn cần phải ghi danh của bạn ứng dụng trong hỗ trợ xAuth của Twitter. Bạn phải hoàn thành bước này để xAuth hoạt động chính xác.

using TweetSharp; 

// OAuth Access Token Exchange 
TwitterService service = new TwitterService("consumerKey", "consumerSecret"); 
OAuthAccessToken access = service.GetAccessTokenWithXAuth("username", "password"); 

Responing để bình luận của bạn, tùy chọn khác sẽ được sử dụng ứng dụng đồng hành web mở trong điều khiển WebBrowser trong ứng dụng di động của bạn, xem https://github.com/danielcrenna/tweetsharp#authenticating-a-browser-application

+0

xAuth không cung cấp acces cho hộp thư đến của người dùng. Và bạn cũng phải gửi yêu cầu để có thể sử dụng nó. – networkprofile

+0

Tôi đã cập nhật câu trả lời của mình. Ngoài ra, vui lòng xem bài đăng thú vị này về xAuth: http://yourhead.tumblr.com/post/428643811/five-things-you-didnt-know-about-xauth – Pol

1

Thay vì Tweetsharp, bạn cũng có thể tận dụng Hammock thư viện để truy cập Twitter API. Đây là số blog, giải thích cách triển khai OAuth cho twitter bằng Hammock.

Hy vọng sẽ giúp bạn.

+0

Ví dụ đó cũng vẫn sử dụng mã PIN mà tôi cho là không phải ' Được sử dụng bởi Twitter nữa. Tôi cũng đã thử mã mẫu và nó không hoạt động. – networkprofile

+0

Bạn đang nhầm lẫn giữa [oauth dựa trên PIN] (https://dev.twitter.com/docs/auth/pin-based-authorization) và [Oauth bình thường] (https://dev.twitter.com/docs/ auth/implementation-sign-twitter). Và ghim mà bạn đang giả định trong ví dụ trên blog là chốt "oauth_verifier". Nếu bạn gặp vấn đề với mã mẫu đăng ở trên, hãy cho tôi biết bạn đang gặp phải vấn đề gì? – nkchandra

+0

Tôi đã thực sự cố gắng nguồn mà ông liên kết trong phần thứ hai của hướng dẫn của mình (https://skydrive.live.com/?cid=5e51a69c0b38399a&sc=documents&id=5E51A69C0B38399A%21317). Khi tôi nhập chi tiết đăng nhập của mình vào trang web twitter, tôi nhận được một cửa sổ bật lên với "KeyNotFoundException" khi tôi nhấp vào ủy quyền. Rất mơ hồ, nhưng đó là tất cả những gì nó nói .. – networkprofile

Các vấn đề liên quan