연락처를 사용하면 Glassware가 직접 만들지 않은 타임라인 항목을 수신할 수 있습니다. 사용자는 카드의 공유 메뉴 항목을 탭하여 연락처와 타임라인 항목을 명시적으로 공유해야 합니다.
작동 방식
공유 연락처를 만들면 타임라인 카드 공유는 다음과 같은 일반적인 흐름을 따릅니다.
- 연락처를 만들고 연락처에서 지원하는 MIME 유형을 정의합니다.
- 사용자의 타임라인에 연락처를 삽입합니다.
- 사용자는 공유 메뉴 항목이 있는 타임라인 항목을 수신합니다. Glassware는 사용자가 이 메뉴 항목을 사용하여 항목을 공유하도록 명시적으로 허용해야 합니다.
- 사용자가 타임라인 항목을 탭하고 공유 메뉴 항목을 선택한 후 연락처를 선택합니다.
- Mirror API는 공유된 타임라인 카드의 사본을 만들고 연락처에 사본 액세스 권한을 부여한 후 사본을 사용자의 타임라인에 삽입합니다. Glassware는 원래 타임라인 항목에 액세스할 수 없습니다.
- 공유 알림을 구독한 경우 타임라인 카드의 식별 정보가 포함된 페이로드를 수신합니다. 그러면 Timeline.get을 사용하여 타임라인 항목을 검색할 수 있습니다.
- 공유된 타임라인 카드를 수정하고 Timeline.update를 사용하여 기존 타임라인 카드를 업데이트합니다.
용도
기본적으로 Glassware는 직접 만들지 않은 타임라인 항목에 액세스할 수 없으므로 연락처를 사용하면 Glassware가 사용자 동의를 얻어 Glassware 데이터를 공유할 수 있습니다.
Glassware에서 연락처를 사용할 수 있는 방법은 크게 두 가지입니다.
사용자가 타임라인 항목을 다른 연락처와 공유하도록 허용: 타임라인 카드에
SHARE기본 제공 메뉴 항목 을 추가합니다. 사용자가 공유 메뉴 항목을 탭하면 Glass에 공유할 수 있는 연락처 목록이 표시됩니다.사용자가 타임라인 항목을 Glassware와 공유하도록 허용: Glassware를 나타내는 연락처를 만듭니다. 사용자가 타임라인 카드를 공유하려는 경우 연락처가 옵션으로 표시됩니다. 관심 있는 카드에만 연락처가 표시되도록 허용되는 MIME 유형 목록을 선언할 수도 있습니다. 사용자가 연락처와 타임라인 카드를 공유할 때 알림을 받으려면 타임라인 알림을 구독하면 됩니다.
연락처 만들기
사용자가 Glassware와 타임라인 항목을 공유하도록 허용하려면 연락처의 JSON 표현을 insert REST 엔드포인트에 POST하여 연락처를 삽입합니다.
모든 연락처는 알림을 수신하는 Glassware에 연락처를 식별하는 id를 지정해야 합니다. 또한 Glass에서 사용자에게 연락처 정보를 표시하는 데 사용하는 displayName 및 imageUrls를 하나 이상 지정해야 합니다.
원시 HTTP
POST /mirror/v1/contacts HTTP/1.1
Authorization: Bearer {auth token}
Content-Type: application/json
Content-Length: {length}
{
"id": "harold"
"displayName": "Harold Penguin",
"iconUrl": "https://developers.google.com/glass/images/harold.jpg"
"priority": 7
}
공유 알림 구독
Mirror API를 사용하면 사용자가 타임라인 항목 에서 특정 작업을 실행하거나 사용자 위치 가 업데이트될 때 전송되는 알림을 구독할 수 있습니다. 알림을 구독할 때 알림을 처리하는 콜백 URL을 제공합니다.
Mirror API의 알림은 JSON 요청 본문이 포함된 구독된 엔드포인트에 POST 요청으로 전송됩니다.
원시 HTTP
{
"collection": "timeline",
"itemId": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
"operation": "INSERT",
"userToken": "harold_penguin",
"verifyToken": "random_hash_to_verify_referer",
"userActions": [
{
"type": "SHARE"
}
]
}
itemId 속성은 공유된 타임라인 항목의 ID이며, Timeline.get과 함께 사용하여 타임라인 항목을 가져올 수 있습니다.
다음 예는 사진 첨부파일이 있는 일반적인 타임라인 항목을 보여줍니다.
{
"id": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
"attachments": [
{
"contentType": "image/jpeg",
"id": "<ATTACHMENT_ID>"
}
],
"recipients": [
{
"kind": "glass#contact",
"source": "api:<SERVICE_ID>",
"id": "<CONTACT_ID>",
"displayName": "<CONTACT_DISPLAY_NAME>",
"imageUrls": [
"<CONTACT_ICON_URL>"
]
}
]
}
오류가 발생하지 않은 경우 서비스는 200 OK HTTP 상태 코드로 API에 응답해야 합니다.
서비스가 오류 코드로 응답하면 Mirror API가 알림을 서비스에 다시 전송하려고 할 수 있습니다.
음성 텍스트 변환 수신
사용자는 기본 음성 메뉴를 통해 텍스트 변환된 음성을 연락처와 공유할 수 있습니다. 현재 연락처에서 사용할 수 있는 음성 명령은 두 가지입니다.
- 'take a note'
- 'post an update'
예를 들어 사용자는 'Ok Glass... post an update to... Cat Stream... Chipotle's birthday is tomorrow!'라는 문구로 Chipotle의 다가오는 생일을 알려줄 수 있습니다.


음성 명령을 사용하려면 다음 단계를 따르세요.
적절한
type으로acceptCommands속성을 지정합니다.{ ... "displayName": "Cat Stream", "id": "CAT_STREAM", "acceptCommands": [ {"type": "POST_AN_UPDATE"} ] }타임라인 알림을 구독하여 텍스트 변환된 음성을 사용할 수 있음을 알립니다. 이 경우 Glassware는 알림을 수신합니다.
{ "collection": "timeline", "operation": "UPDATE", "userToken": "<USER_TOKEN>", "verifyToken": "<VERIFY_TOKEN>", "itemId": "<ITEM_ID>", "userActions": [ {"type": "LAUNCH"} ] }itemId를 사용하여 타임라인 항목을 가져옵니다.{ "id": "<ITEM_ID>", "text": "Chipotle's birthday is tomorrow", "recipients": [ {"id": "CAT_STREAM"} ] }둘 이상의 Glassware가 동일한 음성 명령으로 연락처를 등록하면 Glass에 각 연락처의
displayName이 표시된 2단계 메뉴가 표시됩니다. 그러면 사용자가 원하는 연락처를 말할 수 있습니다. 연락처의displayName에 발음할 수 없는 문자가 포함되어 있거나 발음 기호가 아닌 경우speakableName속성을 사용하여 공유 연락처의 예상 발음을 선언합니다.
공유된 사진의 캡션
사용자는 음성으로 입력한 캡션을 함께 Glassware와 사진을 공유할 수 있습니다. 일반적인 사용자 흐름은 다음과 같습니다.