2017-05-23 7 views
1

애플리케이션에 Google 드라이브 파일 권한을 구현했습니다. 모든 것은 내가 insert a permission하려고 할 때, 내가 도착, 한 명의 사용자 만 (이메일)을 위해, 완벽하게 작동Google 드라이브 REST API - 한 사용자에 대한 권한 값이 잘못되었습니다.

잘못된 요청 (400) : 누구든지 내가이 얻을 왜 아이디어가있다

잘못된 권한 값 한 사용자 만 오류가 있습니까? 이 사용자에 대한 제한 사항은 표시되지 않지만 어쩌면 놓친 것일 수 있습니다.

내가 $this->client->execute($httpRequest)를 호출하기 전에 var_dump($httpRequest);을 만들어 디버깅되었고, 나는이 목적을 가지고 있지만
public function insert_permission($FileID, $Value, $Type, $Role, $OptParams = array(), $Service = NULL) { 
    if(empty($Service)) { 
     $Client = $this->get_client_sa(); 
     $Service = new Google_Service_Drive($Client); 
    } 

    $NewPermission = new Google_Service_Drive_Permission(); 
    $NewPermission->setValue($Value); 
    //$NewPermission->setEmailAddress($Value); 
    $NewPermission->setType($Type); 
    // commenter additional role 
    if($Role == "commenter") { 
     $Role = "reader"; 
     $NewPermission->setAdditionalRoles(["commenter"]); 
    } 
    $NewPermission->setRole($Role); 

    $i = 0; 
    $maxTries = 3; 
    $ErrorMessage = ""; 
    while($i < $maxTries) { 
     try { 
      return $Service->permissions->insert($FileID, $NewPermission, $OptParams); 
     } catch (Exception $E) { 
      $ErrorMessage = $E->getMessage(); 
      if($E->getCode() != 500) 
       $i++; 
     } 
    } 

    $this->session->set_userdata("error", $ErrorMessage); 
    return $E; 
} 

(I 사용자의 이메일을 삭제 : 여기

(나는) google api client (REST API를 v2를 사용하고 있습니다) 내 삽입 권한 기능입니다 보안 및 개인 정보 보호를위한 목적에서, 파일 ID 및 인증 토큰) :

object(Google_Http_Request)#69 (15) { 
    ["batchHeaders":"Google_Http_Request":private]=> 
    array(3) { 
    ["Content-Type"]=> 
    string(16) "application/http" 
    ["Content-Transfer-Encoding"]=> 
    string(6) "binary" 
    ["MIME-Version"]=> 
    string(3) "1.0" 
    } 
    ["queryParams":protected]=> 
    array(0) { 
    } 
    ["requestMethod":protected]=> 
    string(4) "POST" 
    ["requestHeaders":protected]=> 
    array(2) { 
    ["content-type"]=> 
    string(31) "application/json; charset=UTF-8" 
    ["authorization"]=> 
    string(183) "token_string" 
    } 
    ["baseComponent":protected]=> 
    string(26) "https://www.googleapis.com" 
    ["path":protected]=> 
    string(72) "/drive/v2/files/file_id/permissions" 
    ["postBody":protected]=> 
    string(64) "{"role":"writer","type":"user","value":"user_email"}" 
    ["userAgent":protected]=> 
    NULL 
    ["canGzip":protected]=> 
    NULL 
    ["responseHttpCode":protected]=> 
    NULL 
    ["responseHeaders":protected]=> 
    NULL 
    ["responseBody":protected]=> 
    NULL 
    ["expectedClass":protected]=> 
    string(31) "Google_Service_Drive_Permission" 
    ["expectedRaw":protected]=> 
    bool(false) 
    ["accessKey"]=> 
    NULL 
} 

모든 것이 나에게 확인을보고 내가 이미 말했듯이 다른 모든 사용자에 대해 작동합니다. 나는이 문제를 저에게주는 동일한 사용자에 대해 Postman과 전화를 걸었습니다. 문제가 발생하여 코드에 문제가있을 것입니다.

+0

코드를 디버깅하기 전에 질문을 수정하고 코드를 공유해야합니다. "잘못된 권한 값"은 해당 사용자에게 허용되지 않은 권한에 대한 값을 설정하려고한다는 것을 의미합니다. – DaImTo

+0

내 게시물을 편집했습니다. 다시 확인하십시오. 고맙습니다. – Silko

답변

1

이제 완전히 당혹 스럽네요. 나는 사용자 전자 메일 입력을 올바르게 확인하지 못 했으므로 끝에는 공백 문자가있어서 유일한 문제였습니다.