Api ASPTwitter库在使用特殊字符时失败

Api ASPTwitter库在使用特殊字符时失败,api,twitter,asp-classic,vbscript,tweets,Api,Twitter,Asp Classic,Vbscript,Tweets,我正在尝试更新一个旧的ASP经典Twitter程序,我的工作目前使用它来使用新的OAUTH。我不是ASP程序员,但我设法找到了Tim Acheson在网上发布的ASPTwitter库 一切都正常,因为我们有自己的代码搜索数据库,并将一个内置字符串传递给ASPTwitter代码进行tweet 问题是它会随着时间的推移而失败 {"errors":[{"message":"Could not authenticate you","code":32}]} 如果字符串中有“.”句点,则显示错误消息。除了

我正在尝试更新一个旧的ASP经典Twitter程序,我的工作目前使用它来使用新的OAUTH。我不是ASP程序员,但我设法找到了Tim Acheson在网上发布的ASPTwitter库

一切都正常,因为我们有自己的代码搜索数据库,并将一个内置字符串传递给ASPTwitter代码进行tweet

问题是它会随着时间的推移而失败

{"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
”从Twitter API 1.1获取仅用于应用程序身份验证的承载令牌。
'应用程序用户身份验证:https://dev.twitter.com/docs/auth/using-oauth
"及:https://dev.twitter.com/docs/auth/authorizing-request
'API端点状态/更新(发布推文):https://dev.twitter.com/docs/api/1.1/post/statuses/update
私有函数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=“这来自ASPTwitter.asp文件”
oXmlHttp.setRequestHeader“内容类型”,“应用程序/x-www-form-urlencoded;字符集=UTF-8”
oXmlHttp.setRequestHeader“用户代理”、“emiratesjobpost.com”
oXmlHttp.setRequestHeader“授权”、“OAuth”和GetOAuthHeader(sURL、sStatus)
oXmlHttp.send“status=“&Server.URLEncode(sStatus)”将请求正文中的空格编码为+。
UpdateStatusJSON=oXmlHttp.responseText
设置oXmlHttp=Nothing
REM:JSON查看器在这里很有用:http://www.jsoneditoronline.org/
'要修复错误消息“只读应用程序无法发布”,请转到dev.twitter.com/apps上应用程序的“应用程序类型”设置,并将“访问”设置为“读写”。
'将访问权限更改为读/写后,必须单击按钮生成新的身份验证令牌,然后使用这些令牌。
Response.Write”“&UpdateStatusJSON&”“:Response.Flush()
端函数

如果我将“sStatus”行中的“dot”替换为“.”,它会中断

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

请参阅此链接了解您可以执行的更多操作


我希望这能解决这个问题,但我确保每个asp文件都是UTF-8,我仍然能解决这个问题。如果我在消息中包含句点,它会报告它无法进行身份验证,去掉句点,它就会发布。我编辑了第一篇文章,至少包含了bug发生位置的代码,我希望这会有所帮助。如果改用
oXmlHttp.send“status=“&sStatus
,它会崩溃吗?ie:删除URL编码?