我尝试通过 com.twitter.sdk.android.Twitter 用 Java 编写一个认证 Twitter。请参阅下面我的代码:
import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.*;
import com.twitter.sdk.android.core.*;
import com.twitter.sdk.android.core.TwitterCore;
import com.twitter.sdk.android.core.TwitterCore.*;
import com.twitter.sdk.android.core.identity.TwitterAuthClient;
import com.twitter.sdk.android.core.OAuthSigning;
import com.twitter.sdk.android.core.Callback;
import com.twitter.sdk.android.core.Result;
import com.twitter.sdk.android.core.TwitterException;
import com.twitter.sdk.android.core.TwitterSession;
import java.lang.Object.*;
import io.fabric.sdk.android.Fabric;
import android.content.Intent;
import android.app.Fragment;
public static void authentificationTwitter() {
classAuthentificationTwitter auth=new classAuthentificationTwitter();
auth.execAuthentificationTwitter();
}
public static class classAuthentificationTwitter extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void execAuthentificationTwitter() {
Log.v("myLog", "authentificationTwitter");
TwitterAuthConfig authConfig = new TwitterAuthConfig("xxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
TwitterCore twitter = new TwitterCore(authConfig);
Fabric.with(getCurrentActivity(), twitter);
client = new TwitterAuthClient();
client.authorize(getCurrentActivity(), new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> twitterSessionResult) {
Log.v("myLog", "authentificationTwitter Success");
}
@Override
public void failure(TwitterException e) {
Log.v("myLog", "authentificationTwitter echec");
}
});
//startActivityForResult(getIntent(),99);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.v("myLog", "authentificationTwitter onActivityResult : " + requestCode + " / " + resultCode + " / " + data);
super.onActivityResult(requestCode, resultCode, data);
if (client != null) {
client.onActivityResult(requestCode, resultCode, data);
}
}
}
static TwitterAuthClient client;
问题是,我的回调从未调用过。我读到,修改主 Activity 中的 onActivityResult 方法来分派(dispatch)结果就可以了,但我无法访问它。我只能修改我正确的代码。
也许有人可以帮助我。 预先感谢您的帮助。
P.S:我是 Java 新闻...
最佳答案
您需要在 Activity 中调用 onActivityResult。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
// Pass the activity result to the login button.
loginButton.onActivityResult(requestCode, resultCode, data);
}
如果回调在一个fragment内部。您需要在 Activity 和 Fragment 中调用 onActivityResult。 请查看https://dev.twitter.com/twitterkit/android/log-in-with-twitter
关于java TwitterAuthClient onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441513/