2012-04-28 15 views
6

私は、TIは私が要求のこのエラーの実行を得た。この例Google Contacts API version 3.0に従うGoogleのGmailの連絡先と統合しようとしているに失敗しました:https://www.google.com/m8/feeds/contacts/default/fullどのようにGoogleの連絡先を作成するには?

Google.Contacts.Contact createdEntry = cr.Insert(feedUri, newEntry); 

インナー期待を:

{"The remote server returned an error: (400) Bad Request."}

[Line 12, Column 127, element gd:im] Missing attribute: 'address'

完全なコード

using Google.Contacts; 
using Google.GData.Contacts; 
using Google.GData.Client; 
using Google.GData.Extensions; 



      RequestSettings settings = new RequestSettings("OVI2GoogleContacts", "my email", "pass"); 
     ContactsRequest cr = new ContactsRequest(settings); 

     Google.Contacts.Contact newEntry = new Google.Contacts.Contact(); 

     // Set the contact's name. 
     newEntry.Name = new Name() 
      { 
       FullName = "Elizabeth Bennet", 
       GivenName = "Elizabeth", 
       FamilyName = "Bennet", 
      }; 
     newEntry.Content = "Notes"; 
     //Set the contact's e-mail addresses. 
     newEntry.Emails.Add(new EMail() 
      { 
       Primary = true, 
       Rel = ContactsRelationships.IsHome, 
       Address = "liz<at>gmail.com" 
      }); 
     newEntry.Emails.Add(new EMail() 
      { 
       Rel = ContactsRelationships.IsWork, 
       Address = "liz<at>example.com" 
      }); 
     //Set the contact's phone numbers. 
     newEntry.Phonenumbers.Add(new PhoneNumber() 
      { 
       Primary = true, 
       Rel = ContactsRelationships.IsWork, 
       Value = "(206)555-1212", 
      }); 
     newEntry.Phonenumbers.Add(new PhoneNumber() 
      { 
       Rel = ContactsRelationships.IsHome, 
       Value = "(206)555-1213", 
      }); 
     // Set the contact's IM information. 
     newEntry.IMs.Add(new IMAddress() 
      { 
       Primary = true, 
       Rel = ContactsRelationships.IsHome, 
       Protocol = ContactsProtocols.IsGoogleTalk, 
      }); 
     // Set the contact's postal address. 
     newEntry.PostalAddresses.Add(new StructuredPostalAddress() 
      { 
       Rel = ContactsRelationships.IsWork, 
       Primary = true, 
       Street = "1600 Amphitheatre Pkwy", 
       City = "Mountain View", 
       Region = "CA", 
       Postcode = "94043", 
       Country = "United States", 
       FormattedAddress = "1600 Amphitheatre Pkwy Mountain View", 
      }); 
     // Insert the contact. 
     Uri feedUri = new Uri(ContactsQuery.CreateContactsUri("default")); 
     Google.Contacts.Contact createdEntry = cr.Insert(feedUri, newEntry); // here the error 

答えて

7

Googleのサンプルコードが無効であるようです。文書Google Data type/kind gd:im requires the property address to be populatedによると。

@address

@label?

@rel?

@protocol?

@primary?

表記:

elementName Required element

elementName ? Optional element

elementName ***** Optional element, multiple instances allowed

あなたが好きなコードの一部を更新する必要があります:連絡先エントリにIMを添加しながら、エリックにより示唆されるような問題がある

newEntry.IMs.Add(new IMAddress() 
{ 
    Address = "[email protected]", // untested 
    Primary = true, 
    Rel = ContactsRelationships.IsHome, 
    Protocol = ContactsProtocols.IsGoogleTalk, 
}); 
+1

をfolllowingに、をアドレス= "[email protected]" を追加 –

4

上に... Googleのapiの例では、彼らはIMアドレスに言及しなかった

私は電子メールが間違っていると思います,,ありがとうちょうど仕事thatsの

// Set the contact's IM information. 
    newEntry.IMs.Add(new IMAddress() 
     { 
      Primary = true, 
      Rel = ContactsRelationships.IsHome, 
      Protocol = ContactsProtocols.IsGoogleTalk, 
      **Address = "[email protected]",** 
     }); 
関連する問題