1
私はcom.twitter.sdk.android.TwitterでJavaでauth Twitterをコーディングしようとしました。下のコードを参照してください:java TwitterAuthClient onActivityResult
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;
問題は、コールバックは決して呼び出されません。私はそれを読んで、結果をディスパッチするためにメインアクティビティのonActivityResultメソッドを変更するのは問題ありませんが、アクセスできません。私は自分の正しいコードを変更することしかできません。
誰かが私を助けることができるかもしれません。 ご協力いただきありがとうございます。
P.S:私はJavaでニュースだ...
'getCurrentActivity()'とは何ですか? 'onActivityResult()'は 'client.authorize(activity、callback)'で渡す 'Activity'に対して呼び出されます。なぜあなたは 'client.authorize(this、callback) 'を呼び出さないのですか? –
返信いただきありがとうございます。私はIDEでWindev mobilという名前を使用していますが、getCurrentActivityは "this"と同等です。 – Slayes
あなたの 'execAuthentificationTwitter()'の呼び出し方は、Androidにとってはあまり正統ではないようです。別のクラスから呼び出していると仮定している '静的'メソッドから呼び出すのですか?あなたがしようとしているのは、アクティビティが始まるとすぐに認証を開始することです。 'onCreate()'メソッドで 'execAuthentificationTwitter()'を呼び出す必要があります –