Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Web 我想集成一个gmail小部件_Web_Widget_Gmail - Fatal编程技术网

Web 我想集成一个gmail小部件

Web 我想集成一个gmail小部件,web,widget,gmail,Web,Widget,Gmail,这是一个内部门户,我正在寻找一个小部件,允许用户登录到他们的gmail帐户,并查看他们的帐户。我尝试了谷歌小工具,但它显示了以下错误 这是一个内置模块,因此UserPrefs和Content被忽略 此外,由于小玩意即将停产,我不愿意将其作为长期解决方案 甚至来自widgetbox、netvibes等的小部件也似乎不起作用 是不是因为谷歌改变了一些政策,阻止这些小部件工作?或者我做错了什么。我也试着在我的网站中使用谷歌小部件,但不幸的是它不起作用。 它给出了被忽略的内容 没有小部件不适用于我的代码

这是一个内部门户,我正在寻找一个小部件,允许用户登录到他们的gmail帐户,并查看他们的帐户。我尝试了谷歌小工具,但它显示了以下错误 这是一个内置模块,因此UserPrefs和Content被忽略 此外,由于小玩意即将停产,我不愿意将其作为长期解决方案

甚至来自widgetbox、netvibes等的小部件也似乎不起作用


是不是因为谷歌改变了一些政策,阻止这些小部件工作?或者我做错了什么。

我也试着在我的网站中使用谷歌小部件,但不幸的是它不起作用。 它给出了被忽略的内容

没有小部件不适用于我的代码


我认为这是一个政策变化。但我没有任何线索。

我也尝试在我的网站中使用谷歌小部件,但不幸的是,它不起作用。 它给出了被忽略的内容

没有小部件不适用于我的代码


我认为这是一个政策变化。但是我没有任何提示。

当你说“登录他们的帐户”时,你想做什么。您可以使用OAuth,其中用户授予您的应用程序访问其帐户的权限

谷歌有自己的库,用多种语言编写——这里可以找到一些使用Java、Python和PHP的示例:

当您使用OAuth时,您向Google注册,他们会给您一个ConsumerKey和ConsumerCret——这就是您向Google注册应用程序的标识

一旦你这样做了,提供一个允许他们登录的链接-这将带他们到谷歌登录,他们用自己的帐户登录-然后他们授予权限

我在GMail中使用OAuth时遇到了一些问题,但通过他们的联系人成功地解决了这个问题。例如,这是我用来检索所有用户联系人的代码

        public List<Person> GetContacts()
    {
        OAuthParameters parameters = null;
        GOAuthRequestFactory requestFactory = null;
        ContactsService service = null;
        ContactsQuery feedQuery = null;
        ContactsFeed feed = null;
        List<Person> contacts = null;



        try
        {
            if (ConsumerKey == String.Empty) throw new ValueIsEmptyOrNullException("ConsumerKey");
            if (ConsumerSecret == String.Empty) throw new ValueIsEmptyOrNullException("ConsumerSecret");
            if (OAuthCallback == String.Empty) throw new ValueIsEmptyOrNullException("OAuthCallback");
            if (SignatureMethod == String.Empty) throw new ValueIsEmptyOrNullException("SignatureMethod");
            if (ApplicationName == String.Empty) throw new ValueIsEmptyOrNullException("ApplicationName");
            if (Token == String.Empty) throw new ValueIsEmptyOrNullException("Token");
            if (Nonce == String.Empty) throw new ValueIsEmptyOrNullException("Nonce");
            if (Verifier == String.Empty) throw new ValueIsEmptyOrNullException("Verifier");

            if (Scope == String.Empty)
                Scope = "https://www.google.com/m8/feeds";

            parameters = new OAuthParameters();
            parameters.ConsumerKey = ConsumerKey;
            parameters.ConsumerSecret = ConsumerSecret;
            parameters.Scope = Scope;
            parameters.Callback = OAuthCallback;
            parameters.SignatureMethod = SignatureMethod;
            parameters.Timestamp = Toolbox.GenerateTimeStamp();
            parameters.Token = Token;
            parameters.TokenSecret = TokenSecret;
            parameters.Nonce = Nonce;
            parameters.Verifier = Verifier;

            requestFactory = new GOAuthRequestFactory("c1", ApplicationName, parameters);
            service = new ContactsService(ApplicationName);
            service.RequestFactory = requestFactory;
            feedQuery = new ContactsQuery(ContactsQuery.CreateContactsUri("default"));

            feed = service.Query(feedQuery); 

            if (feed.Entries.Count > 0)
            {
                contacts = new List<Person>();

                foreach (ContactEntry contact in feed.Entries)
                {
                    try
                    {
                        if (contact.Name != null)
                        {
                            Person person = new Person();

                            int idStart = contact.Id.Uri.ToString().LastIndexOf('/');

                            if (idStart > 0)
                            {
                                person.PersonId = contact.Id.Uri.ToString().Substring(contact.Id.Uri.ToString().LastIndexOf('/') + 1);
                            }
                            else 
                            {                                
                                person.PersonId = contact.Id.Uri.ToString();
                            }

                            person.GivenName = contact.Name.GivenName;
                            person.Surname = contact.Name.FamilyName;
                            person.Birthday = contact.Birthday;
                            person.Initials = contact.Initials;
                            person.Location = contact.Location;
                            person.MaidenName = contact.MaidenName;
                            person.Occupation = contact.Occupation;
                            person.Photograph = contact.PhotoUri.ToString();
                            person.Surname = contact.Name.FamilyName;

                            if (contact.Emails.Count > 0)
                                person.Email = contact.Emails[0].Address;

                            contacts.Add(person);
                        }
                    }
                    catch (System.Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {

                    }
                }
            }

        }
        catch (Exception ex)
        {                
            throw ex;
        }

        return contacts;
    }
public List GetContacts()
{
OAuthParameters参数=null;
GOAuthRequestFactory requestFactory=null;
ContactsService服务=null;
ContactsQuery feedQuery=null;
ContactsFeed=null;
列出联系人=空;
尝试
{
if(ConsumerKey==String.Empty)抛出新值IsEmptyorNullException(“ConsumerKey”);
如果(ConsumerCret==String.Empty)抛出新值IsEmptyorNullException(“ConsumerCret”);
如果(OAuthCallback==String.Empty)抛出新值EmptyorNullException(“OAuthCallback”);
如果(SignatureMethod==String.Empty)抛出新值IsEmptyorNullException(“SignatureMethod”);
if(ApplicationName==String.Empty)抛出新值IsEmptyorNullException(“ApplicationName”);
如果(Token==String.Empty)抛出新值IsEmptyorNullException(“Token”);
如果(Nonce==String.Empty)抛出新值IsEmptyorNullException(“Nonce”);
如果(验证器==String.Empty)抛出新值IsEmptyorNullException(“验证器”);
if(Scope==String.Empty)
范围=”https://www.google.com/m8/feeds";
参数=新的OAuthParameters();
parameters.ConsumerKey=ConsumerKey;
parameters.ConsumerSecret=ConsumerSecret;
参数范围=范围;
parameters.Callback=OAuthCallback;
parameters.SignatureMethod=SignatureMethod;
parameters.Timestamp=Toolbox.GenerateTimeStamp();
参数。令牌=令牌;
parameters.TokenSecret=TokenSecret;
参数。Nonce=Nonce;
参数。验证器=验证器;
requestFactory=new GOAuthRequestFactory(“c1”,应用程序名称,参数);
服务=新联系人服务(应用程序名称);
service.RequestFactory=RequestFactory;
feedQuery=newContactSquery(ContactsQuery.CreateContactsUri(“默认”));
feed=service.Query(feedQuery);
如果(feed.Entries.Count>0)
{
联系人=新列表();
foreach(feed.Entries中的ContactEntry联系人)
{
尝试
{
如果(contact.Name!=null)
{
Person=新人();
int idStart=contact.Id.Uri.ToString().LastIndexOf('/');
如果(idStart>0)
{
person.PersonId=contact.Id.Uri.ToString().Substring(contact.Id.Uri.ToString().LastIndexOf('/')+1);
}
其他的
{                                
person.PersonId=contact.Id.Uri.ToString();
}
person.GivenName=contact.Name.GivenName;
person.姓氏=contact.Name.FamilyName;
person.birth=contact.birth;
person.Initials=contact.Initials;
person.Location=contact.Location;
person.MaidenName=contact.MaidenName;
person.occulation=contact.occulation;
person.photo=contact.PhotoUri.ToString();
person.姓氏=contact.Name.FamilyName;
如果(contact.Emails.Count>0)
person.Email=联系人.Email[0]。地址;
联系人。添加(人);
}
}
catch(System.Exception-ex)
{
掷骰子;
}
最后
{
}
}
}
}
捕获(例外情况除外)
{