2012-07-13 70 views
0

我正嘗試使用常量聯繫人API將新聯繫人添加到郵件列表。我有一個簡單的asp.net窗體,正在執行以下功能,但我得到「遠程服務器返回錯誤:(403)禁止。」我的功能直接來自Constant Contact,但去圖!常量聯繫API - (403)禁止添加新聯繫人

Constant Contact API

Public Function AddContact(ByVal UserEmailAddress As String, ByVal ContactListNumber As Integer) As String 
    Try 
     Dim xml As String 
     xml = "<?xml version='1.0' encoding='utf-8' ?>" & _ 
     "<entry xmlns='http://www.w3.org/2005/Atom'>" & _ 
      "<title type='text'></title>" & _ 
      "<updated>2008-07-23T14:21:06.407Z</updated>" & _ 
      "<author></author>" & _ 
      "<id>data:,none</id>" & _ 
      "<summary type='text'>Contact</summary>" & _ 
      "<content type='application/vnd.ctct+xml'>" & _ 
       "<Contact xmlns='http://ws.constantcontact.com/ns/1.0/'>" & _ 
        "<EmailAddress>" & UserEmailAddress.ToString() & "</EmailAddress>" & _ 
        "<OptInSource>ACTION_BY_CONTACT</OptInSource>" & _ 
        "<ContactLists>" & _ 
         "<ContactList id='http://api.constantcontact.com/ws/customers/[username]/lists/" & ContactListNumber.ToString() & "'/>" & _ 
        "</ContactLists>" & _ 
       "</Contact>" & _ 
      "</content>" & _ 
     "</entry>" 

     ' Set up the request 
     Dim request As HttpWebRequest 
     request = WebRequest.Create("https://api.constantcontact.com/ws/customers/[username]/contacts/") 
     Dim byteData As Byte() = UTF8Encoding.UTF8.GetBytes(xml.ToString()) 
     request.Method = "POST" 
     request.ContentType = "application/atom+xml" 
     request.ContentLength = byteData.Length 
     request.Credentials = New NetworkCredential("[api key]%[username]", "[password]") 

     ' Send the request 
     Dim postStream As Stream 
     postStream = request.GetRequestStream() 
     postStream.Write(byteData, 0, byteData.Length) 

     Dim response As HttpWebResponse 
     response = request.GetResponse() 

    Catch ex As WebException 
     Return ex.ToString 
    End Try 
End Function 

回答

0

403誤差恆定接觸裝置的密碼是錯誤的,或與該口令字符串配置錯誤。他們指定[your_api_key]%[your_constantcontact_username]:[password]進行身份驗證。雖然他們說這是不贊成的,現在每個人都應該轉向oauth 2.0(至少在2013年之前)。那麼你不必再輸入密碼了。