2017-03-24 15 views
3

我正在將Google API集成到我的項目中。我使用下面的代碼可以這樣做:GoogleConnect.Fetch引發無法投射對象錯誤

public void google() 
    { 

     GoogleConnect.ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
     GoogleConnect.ClientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
     GoogleConnect.RedirectUri = Request.Url.AbsoluteUri.Split('?')[0]; 

     if (!string.IsNullOrEmpty(Request.QueryString["code"])) 
     { 
      string code = Request.QueryString["code"].ToString(); 
      string json = GoogleConnect.Fetch("me", code.ToString()); 
      GoogleProfile profile = new JavaScriptSerializer().Deserialize<GoogleProfile>(json); 
      //code for showing data on my page 
     } 
     if (Request.QueryString["error"] == "access_denied") 
     { 
      ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('Access denied.')", true); 
     } 

    } 
    public class GoogleProfile 
    { 
     public string Id { get; set; } 
     public string DisplayName { get; set; } 
     public Image Image { get; set; } 
     public List<Email> Emails { get; set; } 
     public string Gender { get; set; } 
     public string ObjectType { get; set; } 
    } 

    public class Email 
    { 
     public string Value { get; set; } 
     public string Type { get; set; } 
    } 

    public class Image 
    { 
     public string Url { get; set; } 
    } 

它運行時,我點擊谷歌按鈕,顯示了第一實例數據,但它引發以下錯誤我第二次嘗試。

'/'應用程序中的服務器錯誤。無法投射 'System.String'類型的對象來鍵入'?1?'。

我也在同一屏幕上有一個Facebook和Twitter按鈕,但我懷疑它是造成這個問題。任何建議都會有所幫助。

+0

其中一線到底是失敗的它嗎? – DaImTo

+0

string json = GoogleConnect.Fetch(「me」,code.ToString());線路號碼。 11.這是我第二次嘗試讓訪問。 – rexroxm

+0

找出代碼是什麼,那麼它不是你可以投入字符串的東西。 – DaImTo

回答

3

其中顯示的個人資料 創建按鈕清楚我已經使用這個API,你應該用它把一個清除按鈕

protected void Clear(object sender, EventArgs e) 
    { 
     GoogleConnect.Clear(); 
    } 
相關問題