我不知道pinCode
是什么,我不知道如何获得它?
我发现以下代码,如上所述,我们可以从CallBack中获取它,怎么可以?如果有其他方法,请告诉我..
代码
OAuthConsumer consumer = new DefaultOAuthConsumer(
// the consumer key of this app (replace this with yours)
"iIlNngv1KdV6XzNYkoLA",
// the consumer secret of this app (replace this with yours)
"exQ94pBpLXFcyttvLoxU2nrktThrlsj580zjYzmoM");
OAuthProvider provider = new DefaultOAuthProvider(
"http://twitter.com/oauth/request_token",
"http://twitter.com/oauth/access_token",
"http://twitter.com/oauth/authorize");
/****************************************************
* The following steps should only be performed ONCE
***************************************************/
// we do not support callbacks, thus pass OOB
String authUrl = provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
// bring the user to authUrl, e.g. open a web browser and note the PIN code
// ...
String pinCode = // ... you have to ask this from the user, or obtain it
// from the callback if you didn't do an out of band request
// user must have granted authorization at this point
provider.retrieveAccessToken(consumer, pinCode);
// store consumer.getToken() and consumer.getTokenSecret(),
// for the current user, e.g. in a relational database
// or a flat file
// ...
/****************************************************
* The following steps are performed everytime you
* send a request accessing a resource on Twitter
***************************************************/
// if not yet done, load the token and token secret for
// the current user and set them
consumer.setTokenWithSecret(ACCESS_TOKEN, TOKEN_SECRET);
// create a request that requires authentication
URL url = new URL("http://twitter.com/statuses/mentions.xml");
HttpURLConnection request = (HttpURLConnection) url.openConnection();
// sign the request
consumer.sign(request);
// send the request
request.connect();
// response status should be 200 OK
int statusCode = request.getResponseCode();
答案 0 :(得分:2)
用户必须在浏览器中访问authUrl。该页面将要求他授权该应用程序,然后告诉他pinCode。然后,他必须将pinCode输入您的应用程序。
这些评论确实很好地描述了这一点。