如何让OAuth2使用服务帐户

时间:2013-12-18 22:16:56

标签: google-api oauth-2.0

我们需要从旧的配置API迁移到新的Admin SDK。问题是我们无法弄清楚如何让OAuth2与服务帐户一起使用。我们使用以下代码作为示例,但无法确定key.p12文件的创建位置/方式。我创建了一个服务帐户,其中cliendId,电子邮件地址和API密钥与开发人员控制台中的应用程序绑定在我的服务器上。如果有人可以帮我理解如何创建key.p12文件,那么我很确定我可以使用它。

谢谢,

滑雪

// Set your client id, service account name, and the path to your private key.
// For more information about obtaining these keys, visit:
// https://developers.google.com/console/help/#service_accounts
const CLIENT_ID = 'insert_your_client_id';
const SERVICE_ACCOUNT_NAME = 'insert_your_service_account_name';

// Make sure you keep your key.p12 file in a secure location, and isn't
// readable by others.
const KEY_FILE = '/super/secret/path/to/key.p12';

// Load the key in PKCS 12 format (you need to download this from the
// Google API Console when the service account was created.
$client = new Google_Client();

...     $ key = file_get_contents(KEY_FILE);     $客户端 - > SETCLIENTID(CLIENT_ID);     $ client-> setAssertionCredentials(new Google_AssertionCredentials(       SERVICE_ACCOUNT_NAME,       阵列( 'https://www.googleapis.com/auth/prediction'),       $键)     );

2 个答案:

答案 0 :(得分:1)

转到https://cloud.google.com/console
选择你的项目
点击'API and Auth'
点击“凭据”
点击“创建新客户ID” 选择“服务帐户”
点击“创建客户ID” 您的私钥将被下载 您的公钥将存储并显示在控制台中 您将无法再次检索私钥。 Google只发送一次。如果丢失,则必须重新执行该过程,并更新应用程序中的相关设置 如果已经回答了这个问题,请将其标记为。

答案 1 :(得分:0)

请参阅google oauth2 how to get private key for service account - 今天实际上已更改了新版Google Cloud Console,但答案是最新的。