Oracle APEX oAuth:从第二次开始无法获取访问令牌/授权代码

Oracle APEX oAuth:从第二次开始无法获取访问令牌/授权代码,oracle,oauth,oracle-apex,Oracle,Oauth,Oracle Apex,我正在尝试使用授权代码ProcessFlow从Oracle Apex获取oAuth令牌 参考: 我采取了以下步骤: 1) 使用重定向URI在Apex中注册oAuth客户端并获得 Client ID : MY_CLIENT_ID Client Secret : MY_CLIENT_SECRET Authorization URI : https://apex.oracle.com/pls/apex/MY_WORK/oauth2/auth?response_type=code&client_

我正在尝试使用授权代码ProcessFlow从Oracle Apex获取oAuth令牌

参考:

我采取了以下步骤:

1) 使用重定向URI在Apex中注册oAuth客户端并获得

Client ID : MY_CLIENT_ID
Client Secret : MY_CLIENT_SECRET
Authorization URI : https://apex.oracle.com/pls/apex/MY_WORK/oauth2/auth?response_type=code&client_id= MY_CLIENT_ID&client_secret= MY_CLIENT_SECRET &state=_replace_with_a_unique_value_
2) 当我在web浏览器中打开授权URI并单击“允许访问”时,我在URL中得到了授权代码:

3) 我在web主机中创建了一个PHP页面(),并使用带有以下参数的cURL从APEX服务器请求访问令牌
Client-ID:MY\u Client\u-ID
客户机密:我的客户机密
授权码:我的授权码
URI:https://apex.oracle.com/pls/apex/MY_WORK/oauth2/token

PHP代码:

<?php

 //actual cURL
 /*curl -i -d "grant_type=authorization_code&code= MY_CLIENT_ID " \
 --user MY_CLIENT_SECRET : MY_AUTH_CODE \
 https://apex.oracle.com/pls/apex/MY_WORK/oauth2/token*/

 $pageurl = "https://apex.oracle.com/pls/apex/MY_WORK/oauth2/token";
 $ch = curl_init($pageurl);
 curl_setopt($ch, CURLOPT_HEADER, TRUE); // -i
 curl_setopt($ch,CURLOPT_POST, 2);
 curl_setopt($ch,CURLOPT_POSTFIELDS, "grant_type=authorization_code&code=  MY_CLIENT_ID "); // -d
 curl_setopt($ch,CURLOPT_USERPWD, " MY_CLIENT_SECRET : MY_AUTH_CODE "); // --user
 $resp = curl_exec($ch);
 curl_close($ch);
 echo $resp;
 ?>
因此,我能够成功地获取访问令牌,但问题是当我试图通过打开PHP URL第二次获取访问令牌时
http://server.com/oauth/index.php

我最终得到了无效的授权:{“error”:“Invalid_grant”}1

因此,我决定用PHP更新新的授权代码,我应该通过访问授权URI(如步骤2所示)来获得该代码,但最终导致400个错误请求

但是,如果从第一步开始做所有事情,它的工作很好,但在第二个请求中却出现了相同的问题

在我的应用程序中,我只想一次又一次地执行步骤4以获得新的令牌,这导致了上述问题

所以最后我想知道为什么我不能 1.如步骤3所示,使用授权代码第二次访问令牌 2.以及如步骤中所示,使用授权URI第二次输入授权代码

请给我一些建议,以编程方式从Oracle APEX获取ACCESS_令牌

 {"access_token":"MY_ACCESS_TOKEN","token_type":"bearer","expires_in":36000,"refresh_token":" MY_REFRESH_ACCESS_TOKEN "}1