Google自定义搜索API - 引擎检索引擎数据失败

时间:2015-07-16 19:30:50

标签: google-api google-api-client google-api-dotnet-client google-custom-search

我需要在自定义搜索引擎上进行CRUD。从documentation开始,它看起来非常简单。我不断收到401回复。

我使用Google.Apis.Oauth2.v2获取令牌:

String serviceAccountEmail = "blahblahblah@developer.gserviceaccount.com";

var certificate = new X509Certificate2(@"key.p12", "blah", X509KeyStorageFlags.Exportable);

var credential = new ServiceAccountCredential(
   new ServiceAccountCredential.Initializer(serviceAccountEmail)
   {
      Scopes = new[] { "https://www.googleapis.com/auth/cse" }
   }.FromCertificate(certificate));

bool result = credential.RequestAccessTokenAsync(CancellationToken.None).Result;
TokenResponse token = credential.Token;

然后我将令牌添加到以下请求中(授权:Bearer mytoken):

GET http://cse.google.com/api/<USER_ID>/cse/<CSE_ID>

有一些事情在我身上迸发。

  1. 文档中的确切引用:
  2.   

    虽然您可以将HTTP请求设置为网址http://cse.google.com/api/[USER_ID]/cse/[CSE_ID],但我们建议您使用   改为使用以下网址:

         

    http://cse.google.com/api/[USER_ID]/cse/[CSE_ID]

    请注意,这两个网址完全相同。

    1. 在身份验证部分中,示例使用的是不推荐使用的ClientLogin。没有OAuth 2.0的样本。

    2. 在文档的示例中,它说:

    3.   

      每个自定义搜索引擎都由创建的唯一ID标识   将用户ID与自定义搜索引擎ID相结合,以a分隔   冒号,像这样:

           

      011737558837375720776:mbfrjmyam1g在这种情况下,用户ID是   011737558837375720776,搜索引擎ID为mbfrjmyam。

      你会注意到搜索引擎ID是2个字符,不到它应该是的样子。

      1. 我无处可见范围为&#34; https://www.googleapis.com/auth/cse&#34;。我只是从stackoverflow帖子中复制它。
      2. 我知道这是一个很长的问题,但我希望这会有助于下一个人看到这一点并考虑这些问题。

        任何人都知道401s的原因吗?

0 个答案:

没有答案