首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dropbox无效的访问令牌

Dropbox无效的访问令牌
EN

Stack Overflow用户
提问于 2013-05-06 04:38:56
回答 1查看 2.2K关注 0票数 1

我在这里遵循Dropbox API。https://www.dropbox.com/developers/core/start/php

向下滚动页面,他们会给你“完整的代码”,我复制并粘贴到我的index.php中

在访问我的index.php时,我会收到这些说明

代码语言:javascript
复制
1. Go to: https://www.dropbox.com/1/oauth/authorize?locale=en&oauth_token=9PURkb1SJoLJ4Z41&oauth_callback=http%3A%2F%2Flocalhost%2Fmax%2F
2. Click "Allow" (you might have to log in first)
3. Hit ENTER to continue.

我去到那里,点击“允许”按钮,我直接返回,没有任何其他的事情发生。

我的错误控制台说,

代码语言:javascript
复制
PHP Notice:  Use of undefined constant STDIN - assumed 'STDIN' in /Applications/MAMP/htdocs/max/index.php on line 16
[05-May-2013 20:33:53 UTC] PHP Warning:  fgets() expects parameter 1 to be resource, string given in /Applications/MAMP/htdocs/max/index.php on line 16
[05-May-2013 20:33:54 UTC] PHP Fatal error:  Uncaught exception 'Dropbox\Exception_InvalidAccessToken' with message '
{"error": "Invalid or expired oauth_token"}' in /Applications/MAMP/htdocs/max/dropbox-sdk/Dropbox/RequestUtil.php:222
Stack trace:
#0 /Applications/MAMP/htdocs/max/dropbox-sdk/Dropbox/WebAuth.php(155): Dropbox\RequestUtil::unexpectedStatus(Object(Dropbox\HttpResponse))
#1 /Applications/MAMP/htdocs/max/index.php(19): Dropbox\WebAuth->finish(Object(Dropbox\RequestToken))
#2 {main}
  thrown in /Applications/MAMP/htdocs/max/dropbox-sdk/Dropbox/RequestUtil.php on line 222

如何修复这些错误?我只是抄袭了他们给我的

index.php

代码语言:javascript
复制
require_once "dropbox-sdk/Dropbox/autoload.php";

use \Dropbox as dbx;

$appInfo = dbx\AppInfo::loadFromJsonFile("config.json");

$dbxConfig = new dbx\Config($appInfo, "PHP-Example/1.0");

$webAuth = new dbx\WebAuth($dbxConfig);
list($requestToken, $authorizeUrl) = $webAuth->start('http://localhost/max/');

echo "1. Go to: " . $authorizeUrl . "<br>";
echo "2. Click \"Allow\" (you might have to log in first)<br>";
echo "3. Hit ENTER to continue.\n";
fgets(STDIN);


list($accessToken, $dropboxUserId) = $webAuth->finish($requestToken);
print "Access Token: " . $accessToken->serialize() . "\n";

$dbxClient = new dbx\Client($dbxConfig, $accessToken);
$accountInfo = $dbxClient->getAccountInfo();

print_r($accountInfo);

$f = fopen("working-draft.txt", "rb");
$result = $dbxClient->uploadFile("/working-draft.txt", dbx\WriteMode::add(), $f);
fclose($f);
print_r($result);

$folderMetadata = $dbxClient->getMetadataWithChildren($path);
print_r($folderMetadata);

$f = fopen("working-draft.txt", "w+b");
$fileMetadata = $dbxClient->getFile("/working-draft.txt", $f);
fclose($f);
print_r($fileMetadata);
EN

回答 1

Stack Overflow用户

发布于 2013-05-06 05:05:26

这样编写的STDIN是一个常量。默认情况下,这个常量并不存在,您必须自己定义它。

你可以这样做:

代码语言:javascript
复制
define("STDIN", fopen('php://stdin','r'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16388920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档