2013-10-09 59 views
0

我正在嘗試更新我的工作目前用於使用新OAUTH的舊ASP經典Twitter程序。我不是一個ASP程序員,但我設法找到ASPTwitter庫由蒂姆·艾奇遜在網上張貼在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」行中,它打破了

+0

它打破,如果你使用'oXmlHttp.send 「狀態=」 &sStatus'呢?即:刪除urlencode? – SearchAndResQ

回答

0

您的頁面是否使用UTF-8編碼?在記事本中打開它們,從文件菜單中選擇另存爲,如果選擇了ansi編碼,則將其更改爲UTF-8。

請參閱此鏈接更多的事情可以做,

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

+0

我希望能解決這個問題,但我確信每個asp文件都是UTF-8,我仍然遇到這個問題。如果我在郵件中包含一段時間,它會報告它無法進行身份驗證,取出該時間段併發布。我編輯了第一篇文章,至少包含了發生錯誤的地方的代碼,我希望這些代碼能夠幫助。 – kevincawleyjr