未经授权的客户或范围Google网站站长工具API

时间:2015-04-09 11:36:29

标签: .net api google-webmaster-tools

我一直在遇到一个问题,过去几天,我似乎不是唯一的问题。

我正在尝试通过Google通过NuGet提供的.NET库连接到Google网站站长工具。我在Google Developer Console中成功创建了一个项目,生成了我的服务帐户并检索了一个p12密钥。

接下来是获取网站站长工具中所有网站的列表,我将通过以下方式获取:

...
var result = webmasterService.Sites.List().Execute();

运行代码时出现以下错误:

Error:"unauthorized_client", Description:"Unauthorized client or scope in request.", Uri:""

现在问题似乎是我的客户无权访问网站管理员工具资源。最近几天我一直在浏览互联网寻求帮助,但我一直坚持这个问题。

我必须在哪里指定此用户电子邮件,才能正确验证?

我的连接器代码是指定的:

string keyPath = Server.MapPath("/keys/webmastertoolsapi.p12");
const string serviceAccountEmail = "yadayada-123123@developer.gserviceaccount.com";
const string appName = "WebMasterToolsAPI";

var certificate = new X509Certificate2(keyPath,"notasecret",X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

var credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail)
    {
        User = "name@domain.com", //email-account which has owner-rights in Webmaster Tools
        Scopes = new[] { WebmastersService.Scope.Webmasters }
    }.FromCertificate(certificate));

var webmasterService = new WebmastersService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = appName,
});

0 个答案:

没有答案