无法从 Android 授权 LinkedIn 应用程序

2023-12-11

我正在尝试授权 LinkedIn 应用程序将状态从我的 Android 应用程序发布到 linkedin。但是当我点击授权时,我的网络视图中没有出现任何内容。

这是我的 OwnAuthLinkPage.java:

public class OwnOuthLinkPage extends Activity  implements SoapClient {
    /** Called when the activity is first created. */
    Button  b;
    WebView wb;
    String ftoken,verifire,outh_token,verifire2,requesttokensecret,urlM,OuthT;
    CookieManager cookieManager ;
    public static SharedPreferences prefs;
    public static Editor e;

    private static final String API_KEY = "API_KEY_HERE";
    //This is the private api key of our application
    private static final String SECRET_KEY = "SECRET_KEY_HERE";
    //This is any string we want to use. This will be used for avoid CSRF attacks. You can generate one here: http://strongpasswordgenerator.com/
    private static final String STATE = "STATE_HERE";
    //This is the url that LinkedIn Auth process will redirect to. We can put whatever we want that starts with http:// or https:// .
    //We use a made up url that we will intercept when redirecting. Avoid Uppercases. 
    private static final String REDIRECT_URI = "http://smartprotech.com/1Push/WebService1.asmx";
    /*********************************************/

    //These are constants used for build the urls
    private static final String AUTHORIZATION_URL = "https://www.linkedin.com/uas/oauth2/authorization";
    private static final String ACCESS_TOKEN_URL = "https://www.linkedin.com/uas/oauth2/accessToken";
    private static final String SECRET_KEY_PARAM = "client_secret";
    private static final String RESPONSE_TYPE_PARAM = "response_type";
    private static final String GRANT_TYPE_PARAM = "grant_type";
    private static final String GRANT_TYPE = "authorization_code";
    private static final String RESPONSE_TYPE_VALUE ="code";
    private static final String CLIENT_ID_PARAM = "client_id";
    private static final String STATE_PARAM = "state";
    private static final String REDIRECT_URI_PARAM = "redirect_uri";
    /*---------------------------------------*/
    private static final String QUESTION_MARK = "?";
    private static final String AMPERSAND = "&";
    private static final String EQUALS = "=";



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linkdin);
getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
        wb= (WebView)findViewById(R.id.webv);
        final Activity  OwnOuthLinkPage = this;

         cookieManager = CookieManager.getInstance();
         cookieManager.removeAllCookie();
         String authUrl = getAuthorizationUrl();
        wb.loadUrl(authUrl);
        wb.setWebViewClient(new HelloWebViewClient());
        wb.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress)   
            {
             //Make the bar disappear after URL is loaded, and changes string to Loading...
                OwnOuthLinkPage.setTitle("Loading...");
                OwnOuthLinkPage.setProgress(progress * 100); //Make the bar disappear after URL is loaded

             // Return the app name after finish loading
                if(progress == 100)
                    OwnOuthLinkPage.setTitle(R.string.app_name);
              }
            });
    }


    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            if(url.equalsIgnoreCase("http://smartprotech.com/1Push/WebService1.asmx"))
            {
                finish();
            }
        view.loadUrl(url);
        try{
       StringTokenizer t = new StringTokenizer(url,"=");
        String s1 = t.nextToken();
        String tokenHint = t.nextToken();//token
         verifire = t.nextToken();//verifire
        StringTokenizer t2 = new StringTokenizer(tokenHint,"&");
         ftoken = t2.nextToken();
         ftoken =   ftoken.replace("oauth_token=","");
         if(!verifire.equalsIgnoreCase("uas-continue")){

       StringTokenizer cookies = new StringTokenizer(cookieManager.getCookie("http://smartprotech.com/1Push/Default.aspx"),";");
   /*    outh_token = cookies.nextToken();
       verifire2 = cookies.nextToken();*/
       requesttokensecret = cookies.nextToken();
       requesttokensecret = cookies.nextToken();
       requesttokensecret = requesttokensecret.replace(" TOKENSECREAT=", "");
      // System.out.println("*secret**"+reqToken.replace(" requesttoken=", ""));
            getToken();

        }
        }
        catch(Exception  e){}



        return true;
        }
        }

    /************************************************
     * making SOAP request for getting nearby values.
     ************************************************/
    public void getToken() {
        SoapObject request = new SoapObject("http://tempuri.org/",
                "getAccessTS");
    request.addProperty("oauth_token", ftoken );
    request.addProperty("oauth_Tokensecret",requesttokensecret );
    request.addProperty("oauth_verifier",verifire);

        SoapConnection connection = new SoapConnection((SoapClient) this, url,
                "http://tempuri.org/getAccessTS");
        connection.requestWith(request);

    }

    private static String getAccessTokenUrl(String authorizationToken){
        return ACCESS_TOKEN_URL
                +QUESTION_MARK
                +GRANT_TYPE_PARAM+EQUALS+GRANT_TYPE
                +AMPERSAND
                +RESPONSE_TYPE_VALUE+EQUALS+authorizationToken
                +AMPERSAND
                +CLIENT_ID_PARAM+EQUALS+API_KEY
                +AMPERSAND
                +REDIRECT_URI_PARAM+EQUALS+REDIRECT_URI
                +AMPERSAND
                +SECRET_KEY_PARAM+EQUALS+SECRET_KEY;
    }
    /**
     * Method that generates the url for get the authorization token from the Service
     * @return Url
     */
    private static String getAuthorizationUrl(){
        return AUTHORIZATION_URL
                +QUESTION_MARK+RESPONSE_TYPE_PARAM+EQUALS+RESPONSE_TYPE_VALUE
                +AMPERSAND+CLIENT_ID_PARAM+EQUALS+API_KEY
                +AMPERSAND+STATE_PARAM+EQUALS+STATE
                +AMPERSAND+REDIRECT_URI_PARAM+EQUALS+REDIRECT_URI;
    }

    @Override
    public void success(Object result) {
        //SoapObject sobj = (SoapObject) result;
        String accessToken,accessSecret;

          StringTokenizer t2 = new StringTokenizer(result.toString(),";;");
          accessToken =  t2.nextToken();
          accessSecret =  t2.nextToken();
        OwnOuthLinkPage.e = prefs.edit();
        e.putString("Token", accessToken.replace("AccessToken=", ""));
        e.putString("TokenSecret", accessSecret.replace("AccessTokenSecret =", ""));
        e.putString("Verifire", verifire);
        e.commit();
    /*  Intent i = new Intent(getApplicationContext(),Main.class);
        startActivity(i);*/
        finish();


    }

    @Override
    public void error(Object error) {
        System.out.println("*******Fail******" + error);
    }

}

我无法解决。请帮忙。!


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 Android 授权 LinkedIn 应用程序 的相关文章

随机推荐

  • 让相机的视线方向看正面

    怎么看正面3D模型在WPF 我很困惑如何为 LookDirection 设置 X Y Z 我不知道当我设置 xyz 时会发生什么 也不知道相机在看哪里 我不知道同样的事情UpDirection 以下是我的相机属性 camera Positi
  • BigQuery - 移动中位数计算

    我有这样的月销售额数据 Company Month Sales Adidas 2018 09 100 Adidas 2018 08 95 Adidas 2018 07 120 Adidas 2018 06 155 and so on 我需要
  • C++11 基于范围的 for 循环条件是否在每个周期进行评估?

    for auto entity memoryManager getItems entity gt update mFrameTime 如果内存管理器包含 1000 个项目 memoryManager getItems 被调用 1000 次还
  • TestNG java.lang.NoClassDefFoundError:com/google/common/primitives/Ints

    我是学习 TestNG 的新手 我按照以下步骤操作 我创建了 testng 类 Test dataProvider 注册数据 我写了一个有四个参数的方法 DataProvider 呼叫数据提供商 然后弹出如下错误 TestNG java l
  • 无法理解递归阶乘

    我是递归新手 我无法理解如何计算此递归阶乘函数 当我尝试用头脑运行代码时 我会这样想象它 如果数字 4 第一次返回 4 x 3 第二次返回 3 x 2 第三次返回 2 x 1 所以在我看来 它是 4 x 3 3 x 2 2 x 1 但显然正
  • Matlab获取小于某个值的所有可能的组合

    我有一个矩阵如下 id value 1 0 5 2 0 5 3 0 8 4 0 3 5 0 2 从这个数组中 我希望找到总和小于或等于 1 的所有可能的组合 也就是说 result 1 2 1 4 5 2 4 5 3 5 1 5 1 4 2
  • 从 ComboBox (DropDownList) Winforms 中删除项目

    我有一个已填充的下拉列表 ddlNumbers DisplayMember PhoneNumber ddlNumbers DataSource mobileList ddlNumbers SelectedItem null 单击按钮时 我想
  • MVVM 在点击时更改网格的背景颜色

    我是 MVVM 模式的真正初学者 我正在尝试更改单击按钮时网格的背景 我有一个 xaml 其中包含一个按钮的网格 以及一个 ViewModel cs 我想在单击按钮时更改网格的背景 直到我点击时才成功显示一个消息框 xaml代码
  • 如何在错误时打破承诺链

    考虑这个片段 fetch http api host api port user then function data return data json function err throw new Error Couldn t fetch
  • 单击时的 Javascript 事件侦听器未按预期工作

    我正在尝试创建一个事件侦听器来通过将其放在主体上并执行一些事件委托来处理我的所有 点击 我想做的一个简单的例子是 div ul li 1 li li 2 li li 3 li ul ul ul div 我从上面的代码中期望的是 当我单击 l
  • 如何提取梯度提升分类器的决策规则

    我想提取并可视化 scikit learn 的决策规则GradientBoostingClassifier 如果它只是我会使用的一个 DecisionTreeClassifiertree export graphviz but Gradie
  • Perl 解析 HTML 表中的链接

    我正在尝试从 HTML 表格中获取链接 通过使用HTML 表格提取 我能够解析表格并获取文本 即下面示例中的能力 异常 但无法获取表格中涉及的链接 例如 table tr td a href cate A Ability Ability a
  • 如何在按钮的 onClick() 中打开 Activity?

    我有两个Activitys 命名为App and Gallery App包含前端按钮和功能 Gallery列出 SD 卡中的图像 我想打开Gallery在onClick 里面App App java public class App ext
  • JSF ViewParam 必需 +AJAX 中断页面

    当我单击下面页面上的命令按钮时 导航失败 单击按钮刷新页面 删除 URL 参数并显示所需的错误消息 而不是导航到索引页面 但是 如果我删除必需的属性或删除 f ajax 标签 导航工作正常 使用 com sun faces JSF 2 1
  • _DebugHeapDelete 终止时访问冲突

    我在主程序末尾遇到了奇怪的访问冲突 我很难找到其原因 关闭我的应用程序时 我遇到以下访问冲突 xdebug TEMPLATE FUNCTION DebugHeapDelete template
  • jquery 工具提示设置超时

    我想显示一个工具提示 该提示将在 3 秒后消失 我应该如何修改我的代码 似乎注释的代码不起作用 http jsfiddle net sMJ2T 1 HTML div title the message div JS function myt
  • 将“安全”标志设置为 JSESSIONid cookie

    我想将 secure 标志设置为 JSESSIONID cookie tomcat 6 中有这样的配置吗 我尝试在 server xml 的 Connector 8080 元素中设置 secure true 但它会产生问题 即 Connec
  • '使用 capifony 执行“'cache:clear --no-warmup'”命令时发生错误

    我正在尝试使用 capifony 进行部署 但是当我运行时 cap deploy 它返回一个错误 gt Updating code base with remote cache strategy Password gt Creating c
  • 如何打印Linux上进程的所有线程的线程ID

    我知道如何在线程上下文中执行时打印线程 ID 但我想打印进程生成的所有线程 ID 我需要将其与 strace 输出关联起来以进行调试 如何获取当前线程id pid t x 系统调用 NR gettid From https unix sta
  • 无法从 Android 授权 LinkedIn 应用程序

    我正在尝试授权 LinkedIn 应用程序将状态从我的 Android 应用程序发布到 linkedin 但是当我点击授权时 我的网络视图中没有出现任何内容 这是我的 OwnAuthLinkPage java public class Ow