日々精進

新しく学んだことを書き留めていきます

GoogleApiにService Acocunt Keyを使ってアクセスすると「The OAuth client was invalid」エラー

原因はmailaddressの指定が間違っていたことだった。 例えば、Google APIの.Net SDKでは以下のように秘密鍵のp12ファイルとメールアドレスを使って認証オブジェクトを作成する。

        var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
        ServiceAccountCredential credential = new ServiceAccountCredential(
           new ServiceAccountCredential.Initializer("dummy@mail.co.jp") {
               Scopes = Scopes
           }.FromCertificate(certificate));

このServiceAccountCredential.Initializerに渡すメールアドレスは自分の連絡先アドレスかと思っていたが、 Google Developer ConsoleでService Acocunt Keyを生成したときに一緒に作られるメールアドレスを設定しないといけなかった。

参考:

stackoverflow.com