小编JUG*_*JUG的帖子

LinkedIn API OAuth刷新令牌

我正在使用LinkedIn API从那里提取更新并在网站上显示.在使用OAuth时,我将令牌存储在一个文件中,然后再从那里拉出它以防止登录弹出.但是,一旦我的令牌到期,我不清楚它将如何刷新.以下是我如何从文件中读取令牌 -

        $config = json_decode(file_get_contents(".service.dat"));
        if( isset($config->key) && isset($config->secret) ) {
            $this->access_token = new OAuthConsumer($config->key, $config->secret);
        } 
Run Code Online (Sandbox Code Playgroud)

对于身份验证,我有以下来获取请求令牌 -

function getRequestToken()
{
    $consumer = $this->consumer;
    $request = OAuthRequest::from_consumer_and_token($consumer, NULL, "GET", $this->request_token_path);
    $request->set_parameter("oauth_callback", $this->oauth_callback);
    $request->sign_request($this->signature_method, $consumer, NULL);
    $headers = Array();
    $url = $request->to_url();
    $response = $this->httpRequest($url, $headers, "GET");
    parse_str($response, $response_params);
    $this->request_token = new OAuthConsumer($response_params['oauth_token'], $response_params['oauth_token_secret'], 1);
}
Run Code Online (Sandbox Code Playgroud)

生成令牌后,我正在创建授权网址:

function generateAuthorizeUrl()
{
    $consumer = $this->consumer;
    $request_token = $this->request_token;
    return $this->authorize_path . "?oauth_token=" . $request_token->key;
}
Run Code Online (Sandbox Code Playgroud)

LinkedIn文档说明了关于刷新令牌:

刷新访问令牌非常简单,并且可以在没有为用户显示授权对话框的情况下发生.换句话说,它是一个无缝的过程,不会影响您的应用程序的用户体验.只需让您的应用程序通过授权流程,即可获取额外60天使用寿命的新访问令牌.

我不清楚这意味着什么.如果我必须再次从获取请求令牌重做,那么是否需要我再次发出http请求并且必须弹出登录屏幕?我该如何避免呢?将赞赏建议.

谢谢.

php oauth linkedin-api

10
推荐指数
1
解决办法
1104
查看次数

找到所有可能的枚举组合

有没有一种有效的方法来查找Java中多个枚举之间的所有可能组合?

考虑以下三个枚举 -

public enum EnumOne {
   One ("One"),
   OneMore ("OneMore");
}

public enum EnumTwo {
   Two ("Two"),
}

public enum EnumThree {
   Three ("Three"),
   ThreeMore ("ThreeMore");
}
Run Code Online (Sandbox Code Playgroud)

我希望输出产生这些多个枚举之间的所有可能组合,即

{EnumOne.One, EnumTwo.Two, EnumThree.Three},
{EnumOne.One, EnumTwo.Two, EnumThree.ThreeMore},
{EnumOne.OneMore, EnumTwo.Two, EnumThree.Three},
{EnumOne.OneMore, EnumTwo.Two, EnumThree.ThreeMore}
Run Code Online (Sandbox Code Playgroud)

希望找到一种有效的方法来处理它.

谢谢

java java-7 java-collections-api

7
推荐指数
1
解决办法
1774
查看次数

在Statement与ResultSet上设置提取大小之间的区别

在Statement与ResultSet上设置提取大小有什么区别?Oracle文档说,如果在Statement上设置了提取大小,那么ResultSet也会使用相同的大小,只要在获取结果集之前设置提取大小即可.如果我在Statement或ResultSet上设置它会有什么不同?我正在使用Oracle数据库.以下是有关它的Oracle文档:

获取大小

默认情况下,当Oracle JDBC运行查询时,它会从数据库游标中一次检索10行的结果集.这是默认的Oracle行提取大小值.您可以通过更改行获取大小值来更改每次访问数据库游标时检索的行数.

标准JDBC还允许您为查询指定每个数据库往返提取的行数,此数字称为提取大小.在Oracle JDBC中,行预取值用作语句对象中的默认提取大小.设置提取大小会覆盖row-prefetch设置,并影响通过该语句对象运行的后续查询.

获取大小也用于结果集.当语句对象运行查询时,语句对象的提取大小将传递给查询生成的结果集对象.但是,您还可以在结果集对象中设置提取大小,以覆盖传递给它的语句提取大小.

java oracle jdbc resultset

7
推荐指数
1
解决办法
2608
查看次数