2016-09-30 10 views
2

私はRingCentral FaxOut APIを使用してファックスを送信しています。その応答のファックスステータスはQueuedです。そのメッセージの更新されたファックスステータスを取得するサブスクリプションはありますか? RingCentral Blogは、GetMessage APIを使用して最新の状態を取得することについて言及しています。FaxOut RingCentral APIのファックスステータス変更に関する通知を取得

https://www.ringcentral.com/blog/2015/02/know-fax-transmission-api-succeeded/

彼らは、ユーザーのプレゼンスのためのプッシュ通知を持っています。 https://github.com/ringcentral/ringcentral-js

答えて

1

まず、古い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 
    } 
+0

ありがとうございました。私はこのアプローチを試してみて、ここにアップデートを掲載します。 – Shaan

+0

Cool。これがあなたのユースケースを解決するのに役立つかどうかを楽しみにしています。 –

+0

@Shaanはあなたのためにこの仕事をしましたか? –

関連する問題