Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GoogleConnect.Fetch抛出无法强制转换对象错误_C#_Google Api - Fatal编程技术网

C# GoogleConnect.Fetch抛出无法强制转换对象错误

C# GoogleConnect.Fetch抛出无法强制转换对象错误,c#,google-api,C#,Google Api,我正在将GoogleAPI集成到我的项目中。我正在使用以下代码执行此操作: public void google() { GoogleConnect.ClientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; GoogleConnect.ClientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; GoogleConnect.RedirectUri = R

我正在将GoogleAPI集成到我的项目中。我正在使用以下代码执行此操作:

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; }
    }
public void google()
{
GoogleConnect.ClientId=“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”;
GoogleConnect.ClientSecret=“xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
GoogleConnect.RedirectUri=Request.Url.AbsoluteUri.Split(“?”)[0];
如果(!string.IsNullOrEmpty(Request.QueryString[“code”]))
{
字符串代码=Request.QueryString[“code”].ToString();

字符串json=GoogleConnect.Fetch(“me”,code.ToString()); GoogleProfile=newJavaScriptSerializer()。反序列化(json); //在我的页面上显示数据的代码 } if(Request.QueryString[“error”]=“访问被拒绝”) { RegisterClientScriptBlock(this.GetType(),“警报”,“警报('Access denied')”,true); } } 公共类谷歌简介 { 公共字符串Id{get;set;} 公共字符串DisplayName{get;set;} 公共映像映像{get;set;} 公开列表电子邮件{get;set;} 公共字符串{get;set;} 公共字符串对象类型{get;set;} } 公共类电子邮件 { 公共字符串值{get;set;} 公共字符串类型{get;set;} } 公众阶级形象 { 公共字符串Url{get;set;} }
当我点击google按钮时,它会运行,并在第一个实例中显示数据,但在第二次尝试时,它会抛出以下错误

“/”应用程序中出现服务器错误。无法强制转换类型为的对象 “System.String”以键入“?1”


我在同一屏幕上也有一个facebook和twitter按钮,但我怀疑这是否是问题的根源。任何建议都会很有帮助。

我已经使用了此api,您应该使用它。请在显示配置文件的位置放置一个清除按钮 清除创建按钮

 protected void Clear(object sender, EventArgs e)
    {
        GoogleConnect.Clear();
    }

它到底在哪一行失败了?string json=GoogleConnect.Fetch(“me”,code.ToString());11号线。当我第二次尝试低访问权限时,就会发生这种情况。弄清楚什么是代码,然后它就不是可以转换为字符串的东西了。这就是我无法进入google.fetch定义的问题。在第一个实例中,它发送数据,我能够使用它。不在第二层这是一个土生土长的图书馆吗?这不是谷歌的官方客户端库。对于那些不知道在哪里需要实现它的人,谷歌连接类的Clear方法会清除当前的访问令牌。因此,当一些用户注销网站时,可以使用此方法清除其当前会话。因此在注销时。