Twitter4J 创建回调 URL 返回到我的应用程序
Twitter4J Creating Callback URL That Goes Back To My App
我已通读:Android: Login with Twitter using Twitter4J
所选答案在我需要的上下文中没有意义。
我希望用户能够从我们的应用程序登录他们的 Twitter 帐户,然后,一旦他们登录,我希望我们的应用程序重新加载。
它加载了 Twitter 网页(虽然我希望他们可以在我的应用程序中登录而不需要浏览器)但是我不确定如何将 'my application' 设置为回调。
你能告诉我在哪里可以找到(如果不存在则设置)回调 URL 这样当用户登录 Twitter 时我们的应用程序会重新打开吗?
这是我的登录码:
public void loginUser()
{
//Check if already logged in
if (!isTwitterLoggedInAlready()) {
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
twitter = factory.getInstance();
try {
//What do I set my TWITTER_CALLBACK_URL as?
requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));
} catch (TwitterException e) {
e.printStackTrace();
}
} else {
// user already logged into twitter
Toast.makeText(getApplicationContext(),
"Already Logged into twitter", Toast.LENGTH_LONG).show();
}
}
我不太明白 intents-in-manifest 业务是如何运作的。
相反,我执行了以下操作(并且有效)
创建了一个 WebViewClient 并覆盖了它的 shouldOverrideUrlLoading
将此 WebViewClient 设置为 webview 并从那里加载 Twitter 登录。
在我的 WebView 客户端中,我正在解析 Twitter 响应以查找我的字符串(可以是任何内容)。如果它在那里,我隐藏 webview。
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {
Log.d("Loading webview", url);
if (url.contains(TwitterActivity.CALLBACK_URL)) {
Uri uri = Uri.parse(url);
String oauthVerifier = uri.getQueryParameter("oauth_verifier");
_twitterActivty.closeTwitterBrowser(oauthVerifier);
return false;
}
view.loadUrl(url);
return true;
}
我已通读:Android: Login with Twitter using Twitter4J
所选答案在我需要的上下文中没有意义。
我希望用户能够从我们的应用程序登录他们的 Twitter 帐户,然后,一旦他们登录,我希望我们的应用程序重新加载。
它加载了 Twitter 网页(虽然我希望他们可以在我的应用程序中登录而不需要浏览器)但是我不确定如何将 'my application' 设置为回调。
你能告诉我在哪里可以找到(如果不存在则设置)回调 URL 这样当用户登录 Twitter 时我们的应用程序会重新打开吗?
这是我的登录码:
public void loginUser()
{
//Check if already logged in
if (!isTwitterLoggedInAlready()) {
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
twitter = factory.getInstance();
try {
//What do I set my TWITTER_CALLBACK_URL as?
requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));
} catch (TwitterException e) {
e.printStackTrace();
}
} else {
// user already logged into twitter
Toast.makeText(getApplicationContext(),
"Already Logged into twitter", Toast.LENGTH_LONG).show();
}
}
我不太明白 intents-in-manifest 业务是如何运作的。
相反,我执行了以下操作(并且有效)
创建了一个 WebViewClient 并覆盖了它的 shouldOverrideUrlLoading
将此 WebViewClient 设置为 webview 并从那里加载 Twitter 登录。
在我的 WebView 客户端中,我正在解析 Twitter 响应以查找我的字符串(可以是任何内容)。如果它在那里,我隐藏 webview。
@Override public boolean shouldOverrideUrlLoading (WebView view, String url) { Log.d("Loading webview", url); if (url.contains(TwitterActivity.CALLBACK_URL)) { Uri uri = Uri.parse(url); String oauthVerifier = uri.getQueryParameter("oauth_verifier"); _twitterActivty.closeTwitterBrowser(oauthVerifier); return false; } view.loadUrl(url); return true; }