Я пытаюсь обновить старую программу ASP classic Twitter, которую моя работа в настоящее время использует для использования новой OAUTH. Я не программист ASP, но мне удалось найти библиотеку ASPTwitter, размещенную в Интернете Тимом Ачесоном по адресу http://www.timacheson.com/Blog/2013/jun/asptwitterОшибка библиотеки ASPTwitter при использовании специальных символов
Все работает, так как у нас есть собственный код для поиска нашей базы данных и передачи встроенной строки в код ASPTwitter для чириканья.
Загвоздка в том, что она не будет выполнена с сообщением об ошибке в
{"errors":[{"message":"Could not authenticate you","code":32}]}
, если есть так много, как «» период в строке. Каждый возможный специальный символ, кроме букв и цифр, вызывает сбой.
У нас есть много сообщений, которые будут содержать различные символы, а также URL-адреса.
Я искал все и не смог найти решение. Комментарии на сайте Тима упоминали об этом, но решений пока нет. Все здесь были очень полезны, поэтому я надеялся, что у кого-то может быть решение.
Я не могу опубликовать код, так как есть около 6 файлов, и я не знаю, какая из них вызывает проблему.
Большое вам спасибо за помощь!
Edit:
Это блок файла 300+ линии где проблема происходит, я надеюсь, что причина может быть найдена здесь.
' Gets bearer token for application-only authentication from Twitter API 1.1.
' Application-user authentication: https://dev.twitter.com/docs/auth/using-oauth
' and: https://dev.twitter.com/docs/auth/authorizing-request
' API endpoint statuses/update (post a tweet): https://dev.twitter.com/docs/api/1.1/post/statuses/update
Private Function UpdateStatusJSON(sStatus)
Dim sURL : sURL = API_BASE_URL + "/1.1/statuses/update.json"
Dim oXmlHttp: Set oXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
oXmlHttp.open "POST", sURL, False
sStatus = "this is from the ASPTwitter dot asp file"
oXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"
oXmlHttp.setRequestHeader "User-Agent", "emiratesjobpost.com"
oXmlHttp.setRequestHeader "Authorization", "OAuth " & GetOAuthHeader(sURL, sStatus)
oXmlHttp.send "status=" & Server.URLEncode(sStatus) ' Encoded spaces as + in request body.
UpdateStatusJSON = oXmlHttp.responseText
Set oXmlHttp = Nothing
REM: A JSON viewer can be useful here: http://www.jsoneditoronline.org/
' To fix error message "Read-only application cannot POST" go to your application's "Application Type" settings at dev.twitter.com/apps and set "Access" to "Read and Write".
' After changing access to read/write you must click the button to generate new auth tokens and then use those.
Response.Write "<textarea cols=""100"" rows=""3"" >" & UpdateStatusJSON & "</textarea>" : Response.Flush()
End Function
Если я заменил «точку» на «.» в строке «sStatus» он разбивается
это сломаться, если вы используете 'oXmlHttp.send "статус =" & sStatus' вместо этого? т.е.: удаление urlencode? – SearchAndResQ