Экспорт (0) Печать
Развернуть все

Подключение к службам мультимедиа с помощью API REST

Обновлено: Январь 2015 г.

Для доступа к Microsoft Azure Media Services требуется два элемента: токен доступа, предоставленный службой Azure Access Control Service (ACS) и сам URI Службы Media Services. При создании этих запросов можно использовать любые средства, если вы укажете правильные значения заголовка и передадите токен доступа при вызове Службы Media Services.

Далее описывается самый распространенный рабочий процесс при использования API REST Службы Media Services для подключения к Службы Media Services:

  1. Получение токена доступа

  2. Подключение к URI служб мультимедиа

    ImportantВажно!
    После успешного подключения к https://media.windows.net будет получено перенаправление 301, указывающее другой URI служб Media Services. Последующие обращения к новому URI.

    Вы также можете получить ответ HTTP/1.1 200, содержащий описание метаданных ODATA API.

  3. Публикуйте последующие вызовы API по новому URL-адресу.

    Например, если после попытки подключения вы получили следующий ответ:

    HTTP/1.1 301 Moved Permanently Location: https://wamsbayclus001rest-hs.cloudapp.net/api/ 
    
    , необходимо публиковать следующие вызовы API по адресу https://wamsbayclus001rest-hs.cloudapp.net/api/.

Для прямого доступа к Службы Media Services с помощью API REST получите токен доступа от службы ACS и используйте его при каждом HTTP-запросе к службе. Этот токен аналогичен другим токенам, выдаваемым ACS на основе утверждений в заголовке HTTP-запроса и с помощью протокола OAuth v2. Для прямого подключения к Службы Media Services вам не требуются другие необходимые компоненты.

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

POST https://wamsprodglobal001acs.accesscontrol.windows.net/v2/OAuth2-13 HTTP/1.1 Content-Type: application/x-www-form-urlencoded Host: wamsprodglobal001acs.accesscontrol.windows.net Content-Length: 120 Expect: 100-continue Connection: Keep-Alive  grant_type=client_credentials&client_id=client id value&client_secret=URL-encoded client secret value&scope=urn%3aWindowsAzureMediaServices 
ImportantВажно!
client_id и client_secret предоставляются службами мультимедиа при настройке учетной записи. Они соответствуют значениям AccountName и AccountKey. Дополнительные сведения см. в разделе Инструкции по настройке учетной записи служб мультимедиа. Кроме того, AccountKey для учетной записи Службы Media Services должен быть закодирован в URL-адресе при использовании в качестве значения client_secret в запросе токена доступа.

В следующем примере показан HTTP-ответ, содержащий токен доступа.

HTTP/1.1 200 OK Cache-Control: public, no-store, max-age=0 Content-Type: application/json; charset=utf-8 Expires: Fri, 13 Jan 2012 22:40:07 GMT Last-Modified: Fri, 13 Jan 2012 22:40:07 GMT Vary: * Server: Microsoft-IIS/7.5 Set-Cookie: ASP.NET_SessionId=w3mtu2rnxucaz5tvj0iyfm0t; path=/; HttpOnly X-AspNetMvc-Version: 2.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET X-Content-Type-Options: nosniff Date: Fri, 13 Jan 2012 22:40:07 GMT Content-Length: 580  {"access_token":"http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=client_id&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1326498007&Issuer=https%3a%2f%2f wamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=hV1WF7sTe%2ffoHqzK%2ftmnwQY22NRPaDytcOOpC9Nv4DA%3d","token_type":"http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0","expires_in":"3599","scope":"urn:WindowsAzureMediaServices"} 
ImportantВажно!
Рекомендуется кэшировать значения "access_token " и "expires_in " во внешнем хранилище. Данные токена можно получить позднее из хранилища и повторно использовать в вызовах API REST служб мультимедиа. Это особенно полезно для сценариев, в которых токен можно безопасно использовать в нескольких процессах или на различных компьютерах.

Отслеживайте значение "expires_in" токена доступа и добавляйте в вызовы API REST новые токены по мере необходимости.

Корневой URI служб мультимедиа — https://media.windows.net/. Изначально необходимо подключиться к этому URI, а если вы получите ответ 301 (перенаправление), следует использовать для последующих вызовов новый URI. Кроме того, не используйте логику автоматического перенаправления в ваших запросах. Глаголы и текст запросов HTTP не будут перенаправляться на новый URI.

Корневой URI для загрузки и передачи файлов ресурсов — https://имя_учетной_записи_хранения.blob.core.windows.net/, где имя учетной записи хранения — это имя, использованное при настройке учетной записи Службы Media Services.

В следующем примере кода показано, как создать ресурс в Службы Media Services. Обратите внимание, что фактический механизм авторизации, который передается в заголовке запроса — это токен носителя OAuth v2.

POST https://media.windows.net/API/Assets HTTP/1.1 Content-Type: application/json;odata=verbose Accept: application/json;odata=verbose DataServiceVersion: 3.0 MaxDataServiceVersion: 3.0 x-ms-version: 2.8 Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1335602357&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=XQs5T%2fEfdO39%2f0Z9%2fBBkA12%2bbUUEY21YyefWXuRYZlY%3d Host: media.windows.net Content-Length: 27 Expect: 100-continue  {"Name" : "NewJSONAsset" }
TipСовет
Чтобы упростить обнаружение объектов Службы Media Services, можно использовать операцию $metadata. Она позволяет получить все допустимые типы объектов, свойства объектов, связи, функции, действия и т. д. Следующий пример демонстрирует формирование URI: https://media.windows.net/API/$metadata.

Для просмотра метаданных в браузере необходимо добавить в конец URI строку "?api-version=2.8" или не включать заголовок x-ms-version в запрос.

См. также

Показ:
© 2015 Microsoft