PHP API访问-在oauth2身份验证后继续

PHP API访问-在oauth2身份验证后继续,php,api,dropbox,Php,Api,Dropbox,这是一个相当基本的问题。我刚刚开始使用API调用。我正在尝试使用Dropbox API 我的应用程序具有以下代码: <?php require_once "dropbox-sdk/Dropbox/autoload.php"; use \Dropbox as dbx; $appInfo = dbx\AppInfo::loadFromJsonFile("app-info.json"); $webAuth = new dbx\WebAuthNoRedirect($appInfo, "Charms

这是一个相当基本的问题。我刚刚开始使用API调用。我正在尝试使用Dropbox API

我的应用程序具有以下代码:

<?php
require_once "dropbox-sdk/Dropbox/autoload.php";
use \Dropbox as dbx;
$appInfo = dbx\AppInfo::loadFromJsonFile("app-info.json");
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "CharmsBox/1.0");
$authorizeUrl = $webAuth->start();
print "<p>Authorize the App <a href=\"".$authorizeUrl."\">now</a></p>";
print '
<p class="ui-widget">Auth Key: <input id="authkey">
<a id="btnAuth" class="btn btn-primary btn-large" href="#" tabindex="2">
<span class="glyphicon glyphicon-flash" aria-hidden="true"></span>Authenticate
</a>                              
</p>';  
?>
然而,由于我的php代码已经完成了执行,我无法运行上面的代码。我尝试在另一个php脚本中使用以下内容,并使用GET请求:

require_once "dropbox-sdk/Dropbox/autoload.php";
use \Dropbox as dbx;
$appInfo = dbx\AppInfo::loadFromJsonFile("app-info.json");
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "CharmsBox/1.0");
if (isset($_GET['authcode'])) {  
    list($accessToken, $userId) = $webAuth->finish($authCode);
    echo "Authorization complete.\n";
    echo "- User ID: $userId\n";
    echo "- Access Token: $accessToken\n";
    return;
} else {
  print "Unauthenticated call of script!";
  return;
}
但是,这给了我以下错误代码:

Fatal error: Uncaught exception 'InvalidArgumentException' with message ''code' must not be null' in /var/www/virtual/mydomain/split/htdocs/dropbox-sdk/Dropbox/Checker.php
Dropbox的原始示例脚本如下所示:

echo "1. Go to: $authorizeUrl\n";
echo "2. Click \"Allow\" (you might have to log in first).\n";
echo "3. Copy the authorization code.\n";
echo "Enter the authorization code here: ";
$authCode = \trim(\fgets(STDIN));
list($accessToken, $userId) = $webAuth->finish($authCode);
echo "Authorization complete.\n";
echo "- User ID: $userId\n";
echo "- Access Token: $accessToken\n";

如何使用生成的accesscode继续进行身份验证?具体来说,如何接受基于web的输入而不是标准输入并继续身份验证?

在web应用程序中,您可能希望使用
dbx\WebAuth
,而不是
dbx\WebAuthNoRedirect
。查看SDK中的。

在web应用程序中,您可能希望使用
dbx\WebAuth
,而不是
dbx\WebAuthNoRedirect
。查看SDK中的

echo "1. Go to: $authorizeUrl\n";
echo "2. Click \"Allow\" (you might have to log in first).\n";
echo "3. Copy the authorization code.\n";
echo "Enter the authorization code here: ";
$authCode = \trim(\fgets(STDIN));
list($accessToken, $userId) = $webAuth->finish($authCode);
echo "Authorization complete.\n";
echo "- User ID: $userId\n";
echo "- Access Token: $accessToken\n";