【发布时间】:2017-03-24 06:22:51
【问题描述】:
我正在将 Google API 集成到我的项目中。我正在使用以下代码:
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; }
}
当我单击 google 按钮并在第一个实例上显示数据时它会运行,但在我第二次尝试时它会引发以下错误。
“/”应用程序中的服务器错误。无法转换类型的对象 'System.String' 输入 '?1?'。
我在同一屏幕上还有一个 facebook 和 twitter 按钮,但我怀疑它是否会导致问题。任何建议都会有所帮助。
【问题讨论】:
-
到底是哪一行失败了?
-
string json = GoogleConnect.Fetch("me", code.ToString());行号11. 这发生在我第二次尝试允许访问时。
-
弄清楚什么是代码,然后它不能转换为字符串。
-
这就是我无法定义 google.fetch 的问题。在第一个实例中,它发送数据并且我能够使用它。不是第二个
-
这是一个本土图书馆吗?这不是 Google 的官方客户端库。
标签: c# google-api