Заголовок CFHTTP Content-Length для публикации в Google Voice API

Привет.

Я пытаюсь отправить быстрое смс через голос Google, используя существующий API. Я думаю, что API — это то, что осталось от Центрального вокзала. У них не так много документации. Вот где я взял свою документацию: http://posttopic.com/topic/google-voice-add-on-development

Я могу пройти аутентификацию с помощью cfhttp и получить правильный ответ. Затем я могу получить значение «_rnr_se», необходимое для запроса из голосовой команды Google.

Когда я отправляю номер, сообщение и требуемые значения (авторизация и _rnr_se), я получаю от Google сообщение «длина содержимого» требуется. Но поскольку это динамический пост с разными полями формы, а не файл, я не уверен, что публиковать в качестве длины контента.

Если я просто поставлю какое-то произвольное значение, например «1000», для длины содержимого, запрос просто останется там, и я никогда не получу ответа. Если я ввожу что-то вроде «0» или «500», возвращается 500 — «Внутренняя ошибка сервера».

Есть идеи о том, как получить правильное значение длины контента перед публикацией?

<cffunction name="submitSMS">

    <cfhttp url="https://www.google.com/voice/sms/send/" method="post">
        <cfhttpparam type="header" name="Content-Length" value="???">
        <cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#SESSION.GoogleAuth#">
        <cfhttpparam name="id" value="" type="formfield">
        <cfhttpparam name="phoneNumber" value="+1#params.number#" type="formfield">
        <cfhttpparam name="text" value="#params.smsMessage#" type="formfield">
        <cfhttpparam name="_rnr_se" value="#SESSION.rnr#" type="formfield">
    </cfhttp>

    <cfdump var="#cfhttp.FileContent#"><cfabort>
</cffunction>

person GuiDoody    schedule 20.09.2010    source источник
comment
Если вы измените форму для отправки в другой шаблон cf на вашем сервере и просто сделаете дамп сообщения (‹cfdump var=#getHTTPrequestdata()# format=text output=console›= выгружает в cfserver.log), вы увидите, что он уже отправляет заголовок длины содержимого. О, подожди, ты на Рейло? Я тестирую с CF8, поэтому не знаю, что делает Railo. Но если вы попытаетесь сбросить пост, что вы увидите?   -  person Edward M Smith    schedule 20.09.2010
comment
Спасибо за совет. Я использую Рейло. Судя по всему, Railo не добавляет заголовок длины содержимого автоматически. Но конечным результатом было использование Google Voice API. Для этого уже была создана оболочка класса Java, к которой вы можете легко получить доступ в CF.   -  person GuiDoody    schedule 21.09.2010
comment
Кстати: вы уверены в заголовке Content-Length и Railo? Я мог бы поклясться, что он создает этот заголовок.   -  person Leigh    schedule 21.09.2010


Ответы (1)


Лучший способ сделать это - просто использовать класс java google voice здесь:

http://google-voice-java.googlecode.com

person GuiDoody    schedule 21.09.2010