2016-07-13 4 views
0

Я не могу вставить разрешения на файл с этим кодом:Google Drive разрешения вставки файл

string URI = String.Format("https://www.googleapis.com/drive/v2/files/{0}/permissions&access_token={1}", fileId, "token"); 

var request = (HttpWebRequest)HttpWebRequest.Create(URI); 
request.Method = "POST"; 
request.ContentType = "application/json"; 

string json = "{\"role\": \"reader\",\"type\": \"anyone\"}"; 

byte[] byteData = new System.Text.ASCIIEncoding().GetBytes(json); 

request.ContentLength = byteData.Length; 
using (var dataStream = request.GetRequestStream()) 
{ 
    dataStream.Write(byteData, 0, byteData.Length); 
} 

var response = (HttpWebResponse)request.GetResponse(); 
using (var reader = new StreamReader(response.GetResponseStream())) 
{ 
    json = reader.ReadToEnd(); 
} 

Я аль получает ошибку 404. В чем проблема?

ответ

0
string URI = String.Format("https://www.googleapis.com/drive/v2/files/{0}/permissions&access_token={1}", fileId, "token"); 

маркер доступа не является строкой «маркер» он должен быть действительным маркер доступа для пользователя, которому принадлежит файл.

Update:

permissions?access_token={1}", 

Вы должны использовать ? и не & добавить параметр в URL. Даже не уверен, что вы можете сделать это с помощью HTTP Post.

Добавлена ​​информация:

  1. Если это не просто опечатка с вашей стороны, вы можете прочитать на Authorization немного
  2. Я также рекомендую проверить клиентскую библиотеку Google вместо написания это сам. Google.Apis.Drive.v2 Client Library.
  3. Существует более новая версия API Google Диска, которая также может быть заинтересована в том, чтобы вместо этого писать новый код для более старой версии API. Google Drive API v3.
+0

Да Я пишу «токен», но это Access_token из запроса авторизации – Albert

+0

Двойная проверка вашего идентификатора файла, тогда это может быть неверно, или у аутентифицированного пользователя может не быть доступа к нему. Сделайте file.list для проверки. – DaImTo

+0

Я изменил uri на "https://www.googleapis.com/drive/v2/files/{0}/permissions?alt=json&prettyPrint=true&access_token={1}" и теперь работает – Albert

Смежные вопросы