java TwitterAuthClient onActivityResult

Posted

技术标签:

【中文标题】java TwitterAuthClient onActivityResult【英文标题】: 【发布时间】:2017-02-24 14:46:41 【问题描述】:

我尝试通过 com.twitter.sdk.android.Twitter 用 Ja​​va 编写身份验证 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 方法来调度结果,但我无法访问它。我只能修改我的正确代码。

可能有人可以帮助我。 提前感谢您的帮助。

P.S:我是 Java 中的新闻……

【问题讨论】:

getCurrentActivity() 是做什么的? onActivityResult() 将在您传入client.authorize(activity, callback)Activity 上调用。你为什么不打电话给client.authorize(this, callback) 感谢您的回复,我在名为 Windev mobil 的 IDE 上使用,getCurrentActivity 等同于“this”。 您调用execAuthentificationTwitter() 的方式对于Android 来说似乎有点不正统。您是从 static 方法调用它,我假设您是从另一个类调用它?如果您要在 Activity 启动后立即启动身份验证,则应在 onCreate() 方法中调用 execAuthentificationTwitter() 【参考方案1】:

您需要在活动中调用 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);

如果片段内的回调。您需要在活动和片段中调用 onActivityResult。 请查看https://dev.twitter.com/twitterkit/android/log-in-with-twitter

【讨论】:

以上是关于java TwitterAuthClient onActivityResult的主要内容,如果未能解决你的问题,请参考以下文章

java GetOriginalPdfDocWithTransformation.java

java weka on java

java GetOriginalPdfDocWithTransformation.java

java.sql.SQLException:接近“on”:语法错误问题

使用 Fabric SDK 从 Twitter 授权中取消时出现授权错误

Java UDF on Hadoop 输入参数——从 Pig on Hadoop 调用