google-voice-java API を使用して、Google 音声アカウントからテキストを読み取ろうとしています。code.google.com ページ以外での使用に関するドキュメントはあまり見つかりません。getSMS(); を正しく使用する方法について少し助けが必要です。
1 に答える
google-voice-java APIは、GoogleVoiceデータの生のHTMLを返すだけです。したがって、によって返されるHTMLを解析し、getSMS();
適切と思われるデータを処理する必要があります。
返されたデータがコンソールウィンドウでどのように表示されるかを確認したい場合は、次の手順を実行します。
Voice voice = new Voice(userName, password);
String sms = voice.getSMS();
System.out.println(sms);
これに基づいて、HTMLがどのように見えるか、およびHTMLを解析する方法を確認できます。
編集:おそらく、ビルドパスに追加の依存関係jarを含める必要があることに注意してください。それは彼らのGettingStartedでより明確にされるべきです!
編集2:以下のコメントに基づいて、とがありますgetUnreadSMS()
がmarkAsRead(msgID)
、前者は未読メッセージと一緒に既読のSMSメッセージを返すようです。
getSMS()
メソッド(および他のAPIメソッドの大部分)によって返される応答XMLの上部に気付くと、<json>
要素にJSONデータがあり、必要なすべての情報isRead
( SMSは既読かどうかのマークが付けられます)。
メソッドからの応答をプルダウンし、getSMS()
このオンラインJSONビューアーを使用して、要素内のデータをより適切に検査します<json>
。これにより、そこに何が含まれているかがわかります。JSONデータをオンラインビューアに貼り付けるときは、要素内の先頭<![CDATA
と末尾を省略してください。]>
<json>
JSONパーサーをセットアップし(おそらくGSONを使用することもあります)、HTMLを完全に無視して、JSONデータに基づいてSMSモデルオブジェクトを作成します。未読メッセージの場合は、明らかに、isRead
フィールドがに設定されたJSONオブジェクトが必要です。次に、フィールドをfalse
使用してメソッドに渡し、読み取り済みとしてマークを付けることができます(このメソッドをテストしたところ、機能します)。id
markAsRead(msgID)