2016-08-11 64 views
0

我正在整合Gmail API與PHP。我在收件箱標籤中創建了一個搜索框;這工作完美。當我做同樣的草案標籤,我得到錯誤'q'參數爲opt_param在listDrafts使用php

(list): unknown parameter 'q' 

這是我用過

function listDrafts($service, $userId,$mes) { 

    $drafts = array(); 

$opt_param =array(); 
$opt_param['q'] = $mes; 

    try { 

    $draftsResponse = $service->users_drafts->listUsersDrafts($userId,$opt_param); 

    if ($draftsResponse->getDrafts()) { 

     $drafts = array_merge($drafts, $draftsResponse->getDrafts()); 

    } 

    } catch (Exception $e) { 

    print 'An error occurred: ' . $e->getMessage(); 

    } 

代碼是否在PHP Gmail的API支持listDrafts「Q '參數?

+1

您應該提供您正在討論的代碼部分,以便人們可以更輕鬆地爲您提供幫助。 – Fuzzzzel

+0

根據參考文獻(https://developers.google.com/gmail/api/v1/reference/users/drafts/list),應該支持它。發佈您的實施的相關代碼部分。 –

+0

改善措辭;修正輸入錯誤 – Prune

回答

0

PHP中的Gmail API是否支持listDrafts'q'參數?

是的,它的確如此。檢查Gmail API reference.

Google API PHP client尚不支持listUsersDrafts方法的「q」參數。

在此之前,您可以編輯位於google-api-php-client/src/Google/Service/Gmail.php的Gmail.php。

你必須找到在上述文件中的下面的代碼塊:

$this->users_drafts = new Google_Service_Gmail_UsersDrafts_Resource(
    . 
    . 
    . 
    . 
     ,'list' => array(
      'path' => '{userId}/drafts', 
      'httpMethod' => 'GET', 
      'parameters' => array(
      'userId' => array(
       'location' => 'path', 
       'type' => 'string', 
       'required' => true, 
      ), 
      'maxResults' => array(
       'location' => 'query', 
       'type' => 'integer', 
      ), 
      'pageToken' => array(
       'location' => 'query', 
       'type' => 'string', 
      ) 
     ), 
     ) 
    . 
    . 
    . 

然後改變它,如下所示(加入q到參數數組)。

. 
    . 
    . 
     ,'list' => array(
      'path' => '{userId}/drafts', 
      'httpMethod' => 'GET', 
      'parameters' => array(
      'userId' => array(
       'location' => 'path', 
       'type' => 'string', 
       'required' => true, 
      ), 
      'maxResults' => array(
       'location' => 'query', 
       'type' => 'integer', 
      ), 
      'pageToken' => array(
       'location' => 'query', 
       'type' => 'string', 
      ), 
      'q' => array(
       'location' => 'query', 
       'type' => 'string', 
      ) 
     ), 
     ) 
    . 
    . 
    . 

但我不建議這樣做。我創建了一個pull request,並在GitHub中添加了一個新問題。希望他們很快就會加入。添加後可以使用它。我寫了一個關於這個問題的post here