2012-07-13 71 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年之前)。那么你不必再输入密码了。