使用特殊字符时ASPTwitter库失败

时间:2013-10-09 18:57:10

标签: api twitter asp-classic vbscript tweets

我正在尝试更新我的工作目前用来使用新OAUTH的旧ASP经典Twitter程序。我不是ASP程序员,但我设法找到Tim Acheson在http://www.timacheson.com/Blog/2013/jun/asptwitter

在线发布的ASPTwitter库

一切正常,因为我们有自己的代码搜索我们的数据库并将构建的字符串传递给ASPTwitter代码进行推文。

问题是它将失败并带有

{"errors":[{"message":"Could not authenticate you","code":32}]}

错误消息,如果有多少“。”字符串中的句点。除了字母和数字之外,每个可能的特殊字符都会导致失败。

我们有很多帖子,其中包含各种符号和网址。

我已经搜遍了所有搜索结果并且无法找到解决方案。关于Tim的网站的评论已经提到它但尚无解决方案。这里的每个人都非常乐于助人,所以我希望有人可以找到解决方案。

我无法发布代码,因为大约有6个文件,我不知道是哪一个导致了这个问题。

非常感谢您的帮助!

编辑:

这是发生问题的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”行中,它会中断

1 个答案:

答案 0 :(得分:0)

您的网页是否使用UTF-8编码?在记事本中打开它们,从文件菜单中选择另存为,如果选择了ansi编码,则将其更改为UTF-8。

有关您可以执行的更多操作,请参阅此链接

http://www.hanselman.com/blog/InternationalizationAndClassicASP.aspx