Android Jtwitter, проблемы с аутентификацией
Здравствуйте. У меня возникли проблемы с использованием функций JTwitter для аутентификации в моем приложении Twitter. Я всегда получаю "TwitterException"
Вот мой метод
OAuthSignpostClient oauthClient = new OAuthSignpostClient(consumerKey,
privateKey, "oob");
а) Я не знаю, что ДОЛЖНО быть значением "oob", это "callbackURL", и в моем приложении в твиттере написано "callBack URL: none"
поэтому я попытался положить "none"
, "None"
, а также null
где "oob"
без отличающихся результатов.
тогда остальное является образцом
Intent i = new Intent(Intent.ACTION_VIEW,
Uri.parse(oauthClient.authorizeUrl().toString()));
startActivity(i);
// get the pin
String v = oauthClient.askUser("Please enter the verification PIN from Twitter");
oauthClient.setAuthorizationCode(v);
// Store the authorisation token details for future use
String[] accessToken = oauthClient.getAccessToken();
// Next time we can use new OAuthSignpostClient(OAUTH_KEY, OAUTH_SECRET,
// accessToken[0], accessToken[1]) to avoid authenticating again.
EditText twitterText = (EditText)findViewById(R.id.twitterText);
twitterText.getText();
// Make a Twitter object
Twitter twitter = new Twitter(null, oauthClient);
// Print Daniel Winterstein's status
//System.out.println(twitter.getStatus("winterstein"));
// Set my status
twitter.setStatus(twitterText.getText());
на данный момент, я просто не уверен, как заставить это работать. Хотел бы я быть более многословным об этом, но это как-то связано с аутентификацией. Онлайн-вещи, которые я видел, не помогли
3 ответа
Попробуйте это как ваш URL обратного вызова:
OAuthSignpostClient oauthClient =
new OAuthSignpostClient(consumerKey, privateKey, "callback://twitter");
Помните! После:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
Сделайте следующее
переопределение onResume()
получить код подтверждения
protected void onResume() {
super.onResume();
if (this.getIntent()!=null && this.getIntent().getData()!=null){
Uri uri = this.getIntent().getData();
if (uri != null && uri.toString().startsWith("callback://twitter")) {
//Do whatever you want
//usually use uri.getQueryParameter(someString);
//test what could be someString using Log.v("",uri.toString());
//u want the Authorization code which is a couple of numbers
//so you could use oauthClient.setAuthorizationCode(v);
//and finally initialise Twitter
}
}
}
Ты можешь использовать uri.getQueryParameterNames()
чтобы получить параметр String
имена.
@BobVork
Я просто хотел бы добавить, что вам нужно установить URL-адрес обратного вызова на вкладке "Настройки" для вашего приложения Twitter (на twitter.com).
Не имеет значения, что вы вводите в поле, но если оно пустое, обратные ссылки не будут работать.
Я не уверен, что это проблема, но кажется, что вы никогда не устанавливали имя пользователя для объекта twitter.
Ну, я не знаю, как обстоят дела с Jtwitter API, и я не знаю достаточно Java на этом этапе, чтобы по-настоящему понять внутреннюю работу этого кода, но вы пробовали вместо NULL
или же None
, пытаться ?
вместо. Это обратный вызов, используемый с restful API при выполнении вызовов из Javascript. Попробуйте это.