OneNote api скачать изображение

Я пытаюсь получить список изображений, которые есть на странице onenote. Когда я получаю содержимое страницы, HTML, изображения имеют источник формы:

https://www.onenote.com/api/beta/resources/ {id } / $ значение

Выполняя переход по этому URL-адресу, я получаю следующие заголовки:

{
  'cache-control': 'no-cache',
  pragma: 'no-cache',
  'content-type': 'application/octet-stream',
  expires: '-1',
  server: 'Microsoft-IIS/8.0',
  'x-correlationid': '38283de4-110c-4c17-a371-c950c88025de',
  'x-usersessionid': '38283de4-110c-4c17-a371-c950c88025de',
  'x-officefe': 'OneNoteServiceFrontEnd_IN_2',
  'x-officeversion': '16.0.3429.1562',
  'x-officecluster': 'eus-www.onenote.com',
  p3p: 'CP="CAO DSP COR ADMa DEV CONi TELi CUR PSA PSD TAI IVDi OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR"',
  'x-content-type-options': 'nosniff',
  'request-processing-time': '31.2529 ms',
  'content-disposition': 'attachment',
  'preference-applied': 'odata.include-annotations=*',
  'x-aspnet-version': '4.0.30319',
  'x-powered-by': 'ASP.NET',
  date: 'Sat, 01 Nov 2014 00:17:25 GMT',
  'content-length': '10672' 
}

и тело этого ответа представляет собой большой двоичный файл.

Я делаю это с помощью приложения Node Js.

Может ли кто-нибудь дать мне образец того, как сохранить ответ в файл изображения, например png или jpeg? заранее спасибо


person Mictian    schedule 01.11.2014    source источник


Ответы (1)


После дополнительных исследований я понял, как это сделать.

Код:

downloadFile: function (url, fileName, callback)
	{
		var options = {
				url: url
			,	encoding: null
			,	headers:  {'Authorization': 'Bearer ' + this.context.accessToken}
			};

		request.get(options, function (e, httpResponse, body)
		{
			var buffer = new Buffer(body, 'binary');

			fs.writeFile(fileName, buffer, function(err)
			{
				if(err)
				{
					console.log(err);
					throw err;
				}
				else
				{
					callback()
				}
			});
		});
	}

Важная часть здесь:

  1. encoding: null, иначе запрос (модуль npm) будет рассматривать ваше тело как строку.
  2. Вы должны знать, что OneNote обрабатывает все изображения как .emf, поэтому вы либо конвертируете их, либо сохраняете в этом формате.
person Mictian    schedule 01.11.2014