Вы должны использовать фильтры намерений для получения обратного вызова в случае твиттера как
requestToken = twitterFactory.getInstance()
.getOAuthRequestToken("oauth://com.example.twitter"); //note that "oauth" is your scheme name, "com.example.twitter" is your host name on your intent-filter
К действию, когда вы хотите получить обратный вызов после авторизации, добавьте следующий фильтр намерений
<activity android:name=".TwitterActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="oauth" android:host="com.example.twitter" />
</intent-filter>
</activity>
И в вашей Деятельности, где вы хотите получить обратный вызов (в данном случае TwitterActivity), получите ваш верификатор как
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith("oauth://com.example.twitter")) {
String verifier = uri.getQueryParameter("oauth_verifier");
// request for access token using requestToken and verifier which are used to login second time
}
Здесь важно отметить следующее:
-> прежде всего вы запрашиваетезапросите токен, вызвав web api
-> этот токен запроса может использоваться для авторизации вашего пользователя
-> после авторизации ваш браузер загрузит определенный URL, который может начать вашу деятельность, так как вы добавили intent-фильтрк вашей деятельности с соответствующим именем хоста и именем схемы (то есть host = "oauth", схема = "com.example.twitter")
-> вы можете получить токены доступа из загруженного URL-адреса, т.е. извлекать верификатор изэто и используя ваш токен запроса
для подробного кода, пожалуйста, посетите https://bitbucket.org/hintdesk/android-how-to-tweet-in-twitter-within-android-client/src/f8923a4a641313cae7243da51530b472730c2439?at=default