2017-03-17 12 views
0

私はGmailの連絡先(実際に電子メールの連絡先)を取得したいので、私はGoogle開発者コンソールに登録し、認証情報を取得し、アクセストークンを使用して連絡先を取得しました。Gmailの連絡先/電子メールを含むjsonオブジェクト

https://www.google.com/m8/feeds/ + https://www.googleapis.com/auth/contacts.readonly 

としてURIを要求:

{ 
     "version": "1.0", 
     "encoding": "UTF-8", 
     "feed": { 
     "xmlns": "http://www.w3.org/2005/Atom", 
     "xmlns$openSearch": "http://a9.com/-/spec/opensearchrss/1.0/", 
     "xmlns$batch": "http://schemas.google.com/gdata/batch", 
     "xmlns$gd": "http://schemas.google.com/g/2005", 
     "xmlns$gContact": "http://schemas.google.com/contact/2008", 
     "id": { 
      "$t": "[email protected]" 
     }, 
     "updated": { 
      "$t": "2017-03-17T16:00:05.743Z" 
     }, 
     "category": [ 
      { 
      "scheme": "http://schemas.google.com/g/2005#kind", 
      "term": "http://schemas.google.com/contact/2008#contact" 
      } 
     ], 
     "title": { 
      "type": "text", 
      "$t": "xxx's Contacts" 
     }, 
     "link": [ 
      { 
      "rel": "alternate", 
      "type": "text/html", 
      "href": "http://www.google.com/" 
      }, 
      { 
      "rel": "http://schemas.google.com/g/2005#feed", 
      "type": "application/atom+xml", 
      "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full" 
      }, 
      { 
      "rel": "http://schemas.google.com/g/2005#post", 
      "type": "application/atom+xml", 
      "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full" 
      }, 
      { 
      "rel": "http://schemas.google.com/g/2005#batch", 
      "type": "application/atom+xml", 
      "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/batch" 
      }, 
      { 
      "rel": "self", 
      "type": "application/atom+xml", 
      "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full?alt=json&max-results=25" 
      }, 
      { 
      "rel": "next", 
      "type": "application/atom+xml", 
      "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full?alt=json&start-index=26&max-results=25" 
      } 
     ], 
     "author": [ 
      { 
      "name": { 
       "$t": "xxx" 
      }, 
      "email": { 
       "$t": "[email protected]" 
      } 
      } 
     ], 
     "generator": { 
      "version": "1.0", 
      "uri": "http://www.google.com/m8/feeds", 
      "$t": "Contacts" 
     }, 
     "openSearch$totalResults": { 
      "$t": "32" 
     }, 
     "openSearch$startIndex": { 
      "$t": "1" 
     }, 
     "openSearch$itemsPerPage": { 
      "$t": "25" 
     }, 
     "entry": [ 
      { 
      "id": { 
       "$t": "http://www.google.com/m8/feeds/contacts/xxx%40test.ai/base/ca1e0840ced5eb5" 
      }, 
      "updated": { 
       "$t": "2017-03-13T10:27:43.365Z" 
      }, 
      "category": [ 
       { 
       "scheme": "http://schemas.google.com/g/2005#kind", 
       "term": "http://schemas.google.com/contact/2008#contact" 
       } 
      ], 
      "title": { 
       "type": "text", 
       "$t": "Adam aaa" 
      }, 
      "link": [ 
       { 
       "rel": "http://schemas.google.com/contacts/2008/rel#edit-photo", 
       "type": "image/*", 
       "href": "https://www.google.com/m8/feeds/photos/media/xxx%40test.ai/ca1e0840ced5eb5/1B2M2Y8AsgTpgAmY7PhCfg" 
       }, 
       { 
       "rel": "self", 
       "type": "application/atom+xml", 
       "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/ca1e0840ced5eb5" 
       }, 
       { 
       "rel": "edit", 
       "type": "application/atom+xml", 
       "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/ca1e0840ced5eb5/1489400863365001" 
       } 
      ], 
      "gd$email": [ 
       { 
       "rel": "http://schemas.google.com/g/2005#other", 
       "address": "[email protected]", 
       "primary": "true" 
       } 
      ] 
      }, 
      { 
      "id": { 
       "$t": "http://www.google.com/m8/feeds/contacts/xxx%40test.ai/base/d06991a8a601600" 
      }, 
      "updated": { 
       "$t": "2017-03-13T10:27:43.365Z" 
      }, 
      "category": [ 
       { 
       "scheme": "http://schemas.google.com/g/2005#kind", 
       "term": "http://schemas.google.com/contact/2008#contact" 
       } 
      ], 
      "title": { 
       "type": "text", 
       "$t": "Bailey Bob" 
      }, 
      "link": [ 
       { 
       "rel": "http://schemas.google.com/contacts/2008/rel#edit-photo", 
       "type": "image/*", 
       "href": "https://www.google.com/m8/feeds/photos/media/xxx%40test.ai/d06991a8a601600/1B2M2Y8AsgTpgAmY7PhCfg" 
       }, 
       { 
       "rel": "self", 
       "type": "application/atom+xml", 
       "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/d06991a8a601600" 
       }, 
       { 
       "rel": "edit", 
       "type": "application/atom+xml", 
       "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/d06991a8a601600/1489400863365001" 
       } 
      ], 
      "gd$email": [ 
       { 
       "rel": "http://schemas.google.com/g/2005#other", 
       "address": "[email protected]", 
       "primary": "true" 
       } 
      ] 
      }, 
      { 
      "id": { 
       "$t": "http://www.google.com/m8/feeds/contacts/xxx%40test.ai/base/e33f110891b26a2" 
      }, 
      "updated": { 
       "$t": "2017-03-13T10:27:43.365Z" 
      }, 
      "category": [ 
       { 
       "scheme": "http://schemas.google.com/g/2005#kind", 
       "term": "http://schemas.google.com/contact/2008#contact" 
       } 
      ], 
      "title": { 
       "type": "text", 
       "$t": "cathy Wales" 
      }, 
      "link": [ 
       { 
       "rel": "http://schemas.google.com/contacts/2008/rel#edit-photo", 
       "type": "image/*", 
       "href": "https://www.google.com/m8/feeds/photos/media/xxx%40test.ai/e33f110891b26a2/1B2M2Y8AsgTpgAmY7PhCfg" 
       }, 
       { 
       "rel": "self", 
       "type": "application/atom+xml", 
       "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/e33f110891b26a2" 
       }, 
       { 
       "rel": "edit", 
       "type": "application/atom+xml", 
       "href": "https://www.google.com/m8/feeds/contacts/xxx%40test.ai/full/e33f110891b26a2/1489400863365001" 
       } 
      ], 
      "gd$email": [ 
       { 
       "rel": "http://schemas.google.com/g/2005#other", 
       "address": "[email protected]", 
       "primary": "true" 
       } 
      ] 
      } 
     ] 
     } 
    } 

私はGmailの外の電子メールの連絡先を取得するためのより良い方法を必要と次のいずれか:私にこのJSONの結果を与えた

https://www.google.com/m8/feeds/contacts/default/full?alt=json 

スコープ付きまたはこのjsonをクラスにdeserializeする方法が必要な場合、このjsonをC#に変換して逆シリアル化しようとしましたが、失敗したことが判明しました。 できることを教えてください。

+0

私はC#には、このJSONを変換することにより、デシリアライズしようとしたが失敗した証明* * - あなたは何をしようとしましたか。?何が悪かったのか? '' $ t ''のようなプロパティ名のいくつかは問題を引き起こしましたか?また、JSONがXMLから変換された可能性もあります。 XMLにアクセスできますか?解析する方が簡単でしょうか? – dbc

+0

はい、$ tは '_invalid_name_ $ t'になったので、変換できませんでした。私はXMLも持っていますが、 "var response = client.GetAsync(GetGoogleContactsUrl).Result;"のレスポンスを解析する方法私が理解できなかったものでした。だから、私は "?alt = json"を追加してURLを変更しました。 –

答えて

0

'$ t'などのインスタンスに '$'が含まれているようなものがあると、C#クラスに変換されたときに無効な名前が返されることがありました。これを解決するには、dll参照 'Newtonsoft.Json'を追加し、 'Newtonsoft.Json'を使用して名前空間を使用してクラスを作成します。

public string __invalid_name__$t { get; set; } 

は、以下のようなJSONのプロパティ属性を追加し、あなたの好みに従って名前を変更します。

[JsonProperty("$t")] 
public string NameOfMyChoosing { get; set; } 
関連する問題