0

OAuth を使用して ETrade API でアプリケーションを認証しようとしています。ユーザーが認証するためにブラウザーを ETrade にリダイレクトした後、コールバック URL は、ユーザーが開始したのと同じページになります (認証を終了するために同じページに戻ります)。ただし、同じページにリダイレクトされると、ETrade へのリダイレクトが再び発生します。アプリがリダイレクトされず、認証を終了できるようにするにはどうすればよいですか? ありがとう!

PHP:

require_once("./autotrading/SDK/samples/config.php");
require_once("./autotrading/SDK/Common/common.php");    
  $key = ETWS_APP_KEY;
  $secret = ETWS_APP_SECRET;

  $consumer = new etOAuthConsumer($key, $secret); 
  $request = new etOAuth($consumer);

  $req_token = $request->GetRequestToken(); 
  $oauthToken = $req_token['oauth_token'];
  $oauthSecret = $req_token['oauth_token_secret'];
  $authURL = $request->GetAuthorizeURL(); 
  header('Location: '.$authURL);
//after authenticating, etrade's callback url looks like this: http://yourdomain.com/index.php?oauth_token=abc&oauth_verifier=123
if(isset($_GET['oauth_verifier'])) {
  $verifierCode = trim($_GET['oauth_verifier']);
  echo $verifierCode;
  $accessCode = GetAccessToken($verifierCode);
}

参考までに、API は次のとおりです: https://developer.etrade.com/ctnt/dev-portal/getContent?contentUri=V0_Code-SDKGuides-PHP

4

2 に答える 2

0

問題は、コールバックが来てこれを実行するときに、ヘッダーが設定されているため、最後に if ステートメントに到達しないことです。これを試して...

if(isset($_GET['oauth_verifier'])) {
  $verifierCode = trim($_GET['oauth_verifier']);
  echo $verifierCode;
  $accessCode = GetAccessToken($verifierCode);
}else{
  header('Location: '.$authURL); 
}
于 2018-07-04T09:37:20.520 に答える
-1

etrade を使用したコールバックが適切に構成されている場合はoauth_verifier、クエリ文字列を取得する必要があります。

oauth_verifierクエリ文字列要素が存在し、値が あることをトラップできるはずです。

APIに関するetrade PDFの16ページを見てください。

于 2015-08-18T23:57:10.700 に答える