0

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

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

问题是它会失败

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

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

我们有许多帖子,其中包含各种符号和 URL。

我已经搜索了所有内容,但无法找到解决方案。蒂姆网站上的评论提到了它,但还没有解决方案。这里的每个人都非常有帮助,所以我希望有人可以提供解决方案。

我无法发布代码,因为大约有 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”行中,它会中断

4

1 回答 1

0

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

有关您可以做的更多事情,请参阅此链接

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

于 2013-10-09T21:45:40.247 回答