Я пытаюсь в течение нескольких дней, чтобы заставить OAuth работать с Twitter в моем приложении Windows Phone, но вся информация, которую я нахожу, устарела или трудно следовать. В конце концов я попал где-то, когда нашел этот пост в блоге http://samjarawan.blogspot.co.uk/2010/09/building-real-windows-phone-7-twitter_18.html, который доставил мне весь путь до получения токена доступа, после чего он не удался.Twitter, OAuth, Hammock, TweetSharp и Windows Phone 7
Мой код почти идентичен тому, который был в блоге, в значительной степени просто изменил потребительский ключ и секрет потребителя. Даже их приложение не работает. Он отображает щебетать экран Войти штраф, и успешно подтверждает подлинность, но в функции RequestAccessToken, она не в данный момент:
if (String.IsNullOrEmpty(twitteruser.AccessToken) || String.IsNullOrEmpty(twitteruser.AccessTokenSecret))
{
Dispatcher.BeginInvoke(() => MessageBox.Show(response.Content));
return;
}
Действительно раздражает вещь окно сообщения только показывает замены символа Unicode() и ничего остальное. Я также проверил response.StatusCode, и все в порядке, поэтому, насколько я могу судить, ошибок нет.
Если кто-то может помочь мне в этом, это будет здорово. Я видел другие учебники, которые требуют ввода типа пользователя в PIN-код, но я не смог заставить кого-либо из них работать.
EDIT: Я только что попробовал заставить TweetSharp работать, но еще раз он не смог получить токен доступа. Вот код, я использую для TweetSharp:
public partial class TwitterAuthorisationPage : PhoneApplicationPage
{
private const string consumerKey = "myKey";
private const string consumerSecret = "mySecret"; // These are the correct values for my app
private const string requestTokenUri = "https://api.twitter.com/oauth/request_token";
private const string oAuthVersion = "1.0a";
private const string authorizeUri = "https://api.twitter.com/oauth/authorize";
private const string accessTokenUri = "https://api.twitter.com/oauth/access_token";
private const string callbackUri = "http://bing.com";
private TwitterService twitterService = new TwitterService(consumerKey, consumerSecret);
private OAuthRequestToken _requestToken = null;
public TwitterAuthorisationPage()
{
InitializeComponent();
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
twitterService.GetRequestToken((requestToken, response) =>
{
if (response.StatusCode == HttpStatusCode.OK)
{
_requestToken = requestToken;
Dispatcher.BeginInvoke(() => BrowserControl.Navigate(twitterService.GetAuthorizationUri(requestToken)));
}
else
{
Dispatcher.BeginInvoke(() => MessageBox.Show("Failed to connect to Twitter. Please try again.\n" + response.StatusDescription));
}
});
}
private void ConfirmButton_Click(object sender, RoutedEventArgs e)
{
twitterService.GetAccessToken(_requestToken, PINEntry.Text, (accessToken, response) =>
{
if (response.StatusCode == HttpStatusCode.OK)
{
//These lines just print ?
System.Diagnostics.Debug.WriteLine(accessToken.Token);
System.Diagnostics.Debug.WriteLine(accessToken.TokenSecret);
twitterService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
twitterService.VerifyCredentials((user, verifyResponse) =>
{
if (verifyResponse.StatusCode == HttpStatusCode.OK)
{
Dispatcher.BeginInvoke(() => MessageBox.Show(user.Name));
}
else
{
// Fails here
Dispatcher.BeginInvoke(() => MessageBox.Show("Failed to connect to Twitter. Please try again.1\n" + verifyResponse.StatusDescription));
}
});
}
else
{
Dispatcher.BeginInvoke(() => MessageBox.Show("Failed to connect to Twitter. Please try again.0\n" + response.StatusDescription));
}
});
}
}
EDIT 2: Может быть сделать с этим? https://dev.twitter.com/blog/ssl-upgrade-for-twitterapi
Что на ответ его статуса? Кроме того, если вам нужен только Twitter, вы можете посмотреть на [TweetSharp] (https://github.com/danielcrenna/tweetsharp). – pradeek
ответ не имеет свойства statusText, у него есть StatusDescription, хотя он просто говорит «ОК», , Я также планирую использовать вход в Facebook, поэтому было бы неплохо, если бы эта версия работала, так как я предполагаю, что Facebook потребует подобных шагов. В какой-то момент я смотрел на TweetSharp, но не смог его построить, я мог бы взглянуть еще раз. –
См. Мое редактирование, TweetSharp тоже не работает, или я что-то упустил. –