- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 C# 将图像文件上传到照片库。
使用范围: https://www.googleapis.com/auth/photoslibrary https://www.googleapis.com/auth/photoslibrary.appendonly
我正在使用以下方法生成 uploadToken:
FileStream fS = new FileStream(fullPath, FileMode.Open, FileAccess.Read);
byte[] b = new byte[fS.Length];
fS.Read(b, 0, (int)fS.Length);
fS.Close();
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://photoslibrary.googleapis.com/v1/uploads");
httpWebRequest.ContentType = "application/octet-stream";
httpWebRequest.Headers.Add("Authorization:" + "Bearer " + auth_Token);
httpWebRequest.Headers.Add("X-Goog-Upload-File-Name:" + imageName);
httpWebRequest.Headers.Add("X-Goog-Upload-Protocol:" + "raw");
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(b);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
在这里,我成功获取了 uploadToken。在此之后,我继续创建 mediaItem,如下所示:
httpWebRequest = (HttpWebRequest)WebRequest.Create("https://photoslibrary.googleapis.com/v1/mediaItems:batchCreate");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Headers.Add("Authorization:" + "Bearer " + auth_Token);
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string albumID = "someid";
string itemDesc = "somedesc";
string jsonString = "{\"albumId\": \"" + albumID + "\",\"newMediaItems\": [{ \"description\": \"" + itemDesc + "\", \"simpleMediaItem\": { \"uploadToken\": \"" + uploadToken + "\" }}]}";
streamWriter.Write(jsonString);
streamWriter.Flush();
streamWriter.Close();
}
httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
现在我得到的回应是:
status": { "code": 3, "message": "NOT_IMAGE: There was an error while trying to create this media item." }
我在谷歌上搜索了很多,但没有找到任何解决这个问题的方法,也没有找到使用 Google Photos Library API 的 mediaUpload 的任何代码块。
请告诉我哪里做错了。
-以错误的方式读取/写入文件字节?
-使用Json字符串写错了?
请帮帮我。谢谢。
最佳答案
在上传步骤中将图像写入正文时,我通过执行以下操作成功完成了这项工作。希望这对您有所帮助!
using (var stream = httpWebRequest.GetRequestStream())
{
stream.Write(b, 0, b.Length);
stream.Flush();
stream.Close();
}
关于c# - 谷歌相册 API mediaItems :batchCreate : NOT_IMAGE: There was an error while trying to create this media item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645488/
我正在尝试使用 C# 将图像文件上传到照片库。 使用范围: https://www.googleapis.com/auth/photoslibrary https://www.googleapis.c
我首先将图像保存到 Google Cloud Storage,同时将 mime 类型设置为“image/png”之类的内容,并以文件结尾随机命名,例如“.png”。这些文件似乎存储正确。我可以在数据存
我是一名优秀的程序员,十分优秀!