2014-02-16 16 views
0

我有以下代碼的Dropbox API - 調用未定義功能的ReadLine()

<?php 
// Include DropBox API 
require_once "dropbox-sdk/Dropbox/autoload.php"; 
use \Dropbox as dbx; 
// Settings for DropBox 
$appInfo = dbx\AppInfo::loadFromJsonFile("config.json"); 
$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0"); 

$authCode = \trim(\readline("A-WALID-KEY-HERE")); 

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

?> 

芽當我運行的代碼,我得到這個錯誤。 調用未定義的函數readline()

我在做什麼錯?

+0

'命令和apt-get安裝PHP5-readline'可能會解決這個問題,如果你在一個基於Unix的發行版。有關更多詳細信息,請參見[AskUbuntu上的此帖](http://askubuntu.com/a/183038/133170)。 –

+0

這是由One.com託管的域名 – XerXeX

回答

1

它聽起來像你試圖運行這個作爲一個Web應用程序的評論。如果是這樣,你會遇到麻煩。這看起來像命令行應用示例代碼,這就是爲什麼它使用readline(它從命令行讀取輸入)。

您可能想從SDK附帶的web-file-browser示例開始。這意味着作爲一個Web應用程序運行,並應該告訴你如何做(除其他之外)在瀏覽器中的身份驗證。

0

我有相同的代碼相同的問題。你忘了補充一點:

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

,你所要做的就是使用存儲在變量$ authorizeUrl所創建的鏈接以獲取授權碼:

$authorizeUrl = $webAuth->start(); 

只是這一行之後。 做完這些之後,您需要使用授權碼來生成令牌。一旦你的令牌保存到某個地方安全和註釋也行的其餘

<?php 
    // Include DropBox API 
    require_once "dropbox-sdk/Dropbox/autoload.php"; 
    use \Dropbox as dbx; 
    // Settings for DropBox 
    //$appInfo = dbx\AppInfo::loadFromJsonFile("config.json"); 
    //$webAuth = new dbx\WebAuthNoRedirect($appInfo, "PHP-Example/1.0"); 
    //**$authorizeUrl = $webAuth->start();** 

    $authCode = \trim(\readline("**A-WALID-KEY-HERE**")); 

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

    ?> 

:對於這個註釋你的代碼的類似的部分。然後你可以訪問Dropbox沒有問題。例如:

$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0"); 
$accountInfo = $dbxClient->getAccountInfo();