まず、古いFaxOut APIがあり、新しいRingCentral Platform APIメッセージファックスリソースがあります。後者は私がここで取り上げるものです。以前のバージョンを使用している場合は、RingCentralのサポートケースを作成してください。
プッシュ通知(購読)を使用して特定のファックスステータスデータを受信する直接的な方法はありませんが、メッセージストアイベントを監視し、受信データをフィルタする機能がありますEVENT_DATA.changes.type === 'Fax'のために。
あなたのサブスクリプションでmessage-store
eventFilterを使用する方法を学ぶ:https://developers.ringcentral.com/api-docs/latest/index.html#!#RefGetMessageEvent
をまた、私はサブスクリプションを作成する方法を開発者に示すNode.jsの中でデモアプリケーションを作成している(それはあなたがあなたの質問の中で参照するJavaScript SDKを使用しています): https://github.com/bdeanindy/ringcentral-subscription-basics(使用するイベントフィルターを指定するために.env
ファイルに設定できる構成パラメーターがあります)。
ここでは、RingCentralからファックス発信を送信するときの購読イベントストリームを示します。イベントフィルタに注意して、それらの一つは、ファックスメッセージがAPIを使用する開発者のために利用できるようにしているところであるmessage-store
へのサブスクリプションがある(私はイベントの各フェーズの上に光のコメントを追加しました):
Succesfully logged into the RC Account
EVENT FILTERS: [ '/account/~/extension/2557490012',
'/account/~/extension/2557490012/presence?detailedTelephonyState=true&aggregated=true',
'/account/~/extension/2557490012/message-store',
'/account/~/extension/2557490012/presence/line',
'/account/~/extension/2557490012/message-store/instant?type=SMS' ]
SUBSCRIPTION CREATED SUCCESSFULLY
Fax Sent
SUBSCRIPTION NOTIFICATION.....
{ uuid: '8004a0b2-7907-458b-8a9b-ec1ba3202f5e',
event: '/restapi/v1.0/account/2557490012/extension/2557490012/message-store',
timestamp: '2016-09-30T22:43:53.762Z',
subscriptionId: 'bd6a307b-a05f-4421-acc5-85f093aae2b3',
body:
{ extensionId: 2557490012,
lastUpdated: '2016-09-30T22:43:43.902+0000',
changes: [ { type: 'Fax', newCount: 1, updatedCount: 0 }, [length]: 1 ] } }
Waiting to connect
SUBSCRIPTION NOTIFICATION.....
{ uuid: '627d3cdf-1638-4029-9e0b-94bbf3325c61',
event: '/restapi/v1.0/account/2557490012/extension/2557490012/message-store',
timestamp: '2016-09-30T22:44:13.776Z',
subscriptionId: 'bd6a307b-a05f-4421-acc5-85f093aae2b3',
body:
{ extensionId: 2557490012,
lastUpdated: '2016-09-30T22:44:01.879+0000',
changes: [ { type: 'Fax', newCount: 0, updatedCount: 1 }, [length]: 1 ] } }
SUBSCRIPTION NOTIFICATION.....
{ uuid: 'f1e1310e-11c7-479d-b988-087379bdcad3',
event: '/restapi/v1.0/account/2557490012/extension/2557490012/message-store',
timestamp: '2016-09-30T22:44:23.769Z',
subscriptionId: 'bd6a307b-a05f-4421-acc5-85f093aae2b3',
body:
{ extensionId: 2557490012,
lastUpdated: '2016-09-30T22:44:15.565+0000',
changes: [ { type: 'Fax', newCount: 0, updatedCount: 1 }, [length]: 1 ] } }
Waiting to have sent confirmation
SUBSCRIPTION NOTIFICATION.....
{ uuid: '2148d2d9-8e05-4adc-8019-518774187116',
event: '/restapi/v1.0/account/2557490012/extension/2557490012/message-store',
timestamp: '2016-09-30T22:45:33.767Z',
subscriptionId: 'bd6a307b-a05f-4421-acc5-85f093aae2b3',
body:
{ extensionId: 2557490012,
lastUpdated: '2016-09-30T22:45:21.232+0000',
changes: [ { type: 'Fax', newCount: 0, updatedCount: 1 }, [length]: 1 ] } }
しかし、ファックスが送信されたのか、キューに入れられたのか、失敗したのかはどうやって判断しますか?あなたは、クエリでGET the Message Store listフィルタリングにEVENT.eventプロパティを使用します。次にmessageType=Fax&availability=Alive&direction=Outbound&messageStatus=Sent
、結果のメッセージストアレコードは、あなたがに発信イベント(HTTPのPOSTを一致させるためにto.phoneNumberを使用することができますrecords
に新しいアイテムを持っていますファックスを送る)。
{
"uri": "{{REMOVED_FOR_SECURITY}}",
"id": {{REMOVED_FOR_SECURITY}},
"to": [
{
"phoneNumber": "+{{REMOVED_TO_PREVENT_SPAM}}",
"name": "Hello Fax",
"messageStatus": "Sent"
}
],
"type": "Fax",
"creationTime": "2016-09-30T22:43:43.000Z",
"readStatus": "Unread",
"priority": "Normal",
"attachments": [
{
"id": {{REMOVED_FOR_SECURITY}},
"uri": "{{REMOVED_FOR_SECURITY}}",
"type": "RenderedDocument",
"contentType": "application/pdf"
}
],
"direction": "Outbound",
"availability": "Alive",
"messageStatus": "Sent",
"faxResolution": "High",
"faxPageCount": 2,
"lastModifiedTime": "2016-09-30T22:45:21.232Z",
"coverIndex": 0
}
ありがとうございました。私はこのアプローチを試してみて、ここにアップデートを掲載します。 – Shaan
Cool。これがあなたのユースケースを解決するのに役立つかどうかを楽しみにしています。 –
@Shaanはあなたのためにこの仕事をしましたか? –