当前位置: 首页 > 知识库问答 >
问题:

谷歌联系人Api - 401错误,当访问用户联系人

公西嘉玉
2023-03-14

我正在使用oauth 1.0,到目前为止,我可以成功地从谷歌获得访问令牌。但是当我想从https://www.google.com/m8/feeds/contacts/default/full检索用户联系人时,它返回401错误,没有进一步的解释。

我发现来自Google playground的信息可能不太准确,例如,步骤3和步骤5中的签名基本字符串包含oauth_version,但它是错误的。(如果包含oauth_version,将返回signature_invalid,不包含oauth_version)

这是我的要求:

   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbGetContacts.ToString());
        req.Method = "GET";
        req.Headers.Add(authHeader);
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();

这是我的标题:

        string authHeader = "Authorization: OAuth " +
        "oauth_version=" + "\"" + "1.0" + "\"" + "\"," +
        "oauth_nonce=" + "\"" + nonce + "\"," +
        "oauth_timestamp=" + "\"" + timeStamp + "\"," +
        "oauth_consumer_key=" + "\"" + GoogleconsumerKey + "\"," +
        "oauth_token=" + "\"" + OauthToken+ "\"," +
        "oauth_signature_method=" + "\"" + "HMAC-SHA1" + "\"," +
        "oauth_signature=" + "\"" + UpperCaseUrlEncode(sig) + "\"";

谁能告诉我如何解决这个问题?

共有2个答案

云捷
2023-03-14

事实上:

如果您的应用程序有某些不寻常的授权要求,例如在请求数据访问(混合)或域范围授权(2LO)的同时登录,那么您目前不能使用OAuth 2.0令牌。在这种情况下,您必须改为使用OAuth 1.0令牌和API密钥。您可以在Google API Console中的API访问窗格的Simple API Access部分中找到应用程序的API密钥。

根据https://developers.google.com/google-apps/contacts/v3/?hl=fr

所以你需要传递一个API键。您可以通过在URL中添加key='YOUR_API_KEY '来实现这一点,但是如果您使用的是gdata客户端库,如何传递API键呢?

凌嘉勋
2023-03-14

OAuth1已被(Google)弃用。请不要花费任何精力使用OAuth1编写新代码。使用OAuth2没有签名和加密。您需要使用OAuth1的原因是什么?我们想知道。我在Google从事OAuth工作。

 类似资料:
  • 我正在尝试访问谷歌联系人API,但我的尝试已经失败了。从其他(网络)语言,我习惯于API控制台和公共API密钥(授权)。 这样,我就不能刷新令牌,也不能确定是否将公钥用作accesstoken...相反,我尝试了一个服务帐户: 这里我的例外: 谢谢提示!

  • 我正试图连接到google Contacts api以访问保存在google中的联系人/联系人,但它抛出了一个TokenResponseException:401 Unauthorized。我对谷歌Oauth2有些陌生。0.我已按要求将服务帐户密钥文件下载到我的项目根目录。 代码如下: 但是,会引发以下异常: 通用域名格式。谷歌。应用程序编程接口。客户啊。oauth2。TokenResponseE

  • M600 会显示您存储在 Google Contacts(Google 联系人)上的联系人信息。您可以呼叫联系人或给他们发送信息或电子邮件。 *请注意,由于手机的操作系统的不同,其通讯功能的使用会受到某些限制。

  • 公共类GoogleContact{private static final JsonFactory JSON_FACTORY=new JacksonFactory(); }响应为:com.google.api.client.auth.oauth2.TokenResponseException:400错误请求{“错误”:“无效_grant”,“错误_description”:“错误请求”}位于com

  • 介绍 通过 Contact 组件可以实现联系人的展示、选择、编辑等功能。 引入 import { createApp } from 'vue'; import { ContactCard, ContactList, ContactEdit } from 'vant'; const app = createApp(); app.use(ContactCard); app.use(ContactLi

  • 我有AMP中的HTML表单,带有POST操作;电子邮件的PHP文件使用Sendgrid API。我尝试了Json重定向的headers响应,但不起作用。 出于这个原因,我应用了JavaScript重定向(是的,我知道,这会为AMP验证生成错误,但我需要重定向到跟踪在线转换的感谢页面)。 PHP文件工作正常,所有电子邮件都是发送的,但没有JavaScript重定向,只有电子邮件发送的div成功或错误