Java Twitter4J Исключение нулевого указателя на pin.length()
Документация на это довольно плохая. Следовал инструкциям, до сих пор сталкиваюсь с проблемами.
Относится к OAuth в API Twitter через библиотеку Twitter4J.
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey("");
builder.setOAuthConsumerSecret("");
builder.setOAuthAccessToken(null);
builder.setOAuthAccessTokenSecret(null);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
Twitter twitter = factory.getInstance();
RequestToken requestToken;
try {
String callbackURL = "/callback";
requestToken = twitter.getOAuthRequestToken(callbackURL);
AccessToken accessToken = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (null == accessToken) {
System.out.println("Open the following URL and grant access to your account:");
String requestTokenAuthorisationURL = requestToken.getAuthorizationURL();
System.out.println(requestTokenAuthorisationURL);
System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:");
String pin = br.readLine();
try {
if (pin.length() > 0) {
accessToken = twitter.getOAuthAccessToken(requestToken, pin);
} else {
accessToken = twitter.getOAuthAccessToken();
}
} catch (TwitterException te) {
if (401 == te.getStatusCode()) {
System.out.println("Unable to get the access token.");
} else {
te.printStackTrace();
}
}
}
} catch (TwitterException ex) {
Logger.getLogger(EmployerAdvertisingTwitter.class.getName()).log(Level.SEVERE, null, ex);
}
Исключение нулевого указателя генерируется в этой строке;
if (pin.length() > 0) {
И я не могу понять, почему это происходит или что на самом деле делает этот раздел кода. Я пытался закомментировать весь раздел кода try/catch, окружающий pin.length()
кусок кода, и это заканчивается бесконечным циклом, генерирующим новые URL авторизации.
Любые идеи или указатели?