你使用过Google的Directory API吗? [英] Have you used Google's Directory API?

查看:153
本文介绍了你使用过Google的Directory API吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Google Directory API Library for .NET来维护域的电子邮件地址。最新的图书馆是google-admin-directory_v1-rev6-csharp-1.4.0-beta。迄今为止最好和最远的是收到403错误(未授权访问此资源/ api)。

I'm trying to use Google Directory API Library for .NET to maintain email addresses for a domain. The latest library is google-admin-directory_v1-rev6-csharp-1.4.0-beta. The best and farthest I've gotten so far is to receive a 403 error (Not Authorized to access this resource/api).

有没有人在那里成功使用它?如果是这样,你可以分享一些代码,提示或技巧吗?

Has anyone out there successfully used it? If so, could you share some code, tips, or tricks?

推荐答案

我已经使用它,并在创建控制台应用程序方面取得了一些成功。
目前,我试图找到一种方式来跳过授权代码的复制/粘贴。
请勿忘记在API控制台中启用API访问。
我会给你一个小样本:

I have used it and got some success in creating a console-application. At the moment I'm trying to find a way to skip the copy/paste of the authorization code. Don't forget to turn on API access in your APIs Console. I'll show you a small sample:

using System;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

using DotNetOpenAuth.OAuth2;

using Google.Apis.Authentication.OAuth2;
using Google.Apis.Authentication.OAuth2.DotNetOpenAuth;
using Google.Apis.Samples.Helper;
using Google.Apis.Services;
using Google.Apis.Util;
using Google.Apis.Admin.directory_v1;
using Google.Apis.Admin.directory_v1.Data;



namespace Bergstedts.CreateNewUser
{
    public class Program
    {
    static void Main(string[] args)
    {
         // Display the header and initialize the sample.
        CommandLine.EnableExceptionHandling();
        Console.WriteLine("Create users in a google apps domain!");
        Console.WriteLine("by Jonas Bergstedt 2013");

        // Get the user data and store in user object
        Console.Write("Email: ");
        string userId = Console.ReadLine();

        Console.Write("Givenname: ");
        string GivenName = Console.ReadLine();

        Console.Write("Familyname: ");
        string FamilyName = Console.ReadLine();

        Console.Write("Password: ");
        string Password = Console.ReadLine();

        User newuserbody = new User();
        UserName newusername = new UserName();
        newuserbody.PrimaryEmail = userId;
        newusername.GivenName = GivenName;
        newusername.FamilyName = FamilyName;
        newuserbody.Name = newusername;
        newuserbody.Password = Password;

        // Register the authenticator.
        var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description)
            {
                ClientIdentifier = "<your clientId from Google APIs Console>",
                ClientSecret = "<your clientsecret from Google APIs Console>",
            };

        var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization);

        // Create the service.
        var service = new DirectoryService(new BaseClientService.Initializer()
            {
                Authenticator = auth,
                ApplicationName = "Create User",
                ApiKey = "<your API Key from Google APIs console> (not sure if needed)"             
            });

        User results = service.Users.Insert(newuserbody).Execute();
        Console.WriteLine("User :" + results.PrimaryEmail + " is created");
        Console.WriteLine("Press any key to continue!");
        Console.ReadKey();
    }
    private static IAuthorizationState GetAuthorization(NativeApplicationClient arg)
    {
        // Get the auth URL:
        IAuthorizationState state = new AuthorizationState(new[] { DirectoryService.Scopes.AdminDirectoryUser.GetStringValue() });
        state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
        Uri authUri = arg.RequestUserAuthorization(state);

        // Request authorization from the user (by opening a browser window):
        Process.Start(authUri.ToString());
        Console.WriteLine();
        Console.Write("Authorization Code: ");
        string authCode = Console.ReadLine();

        // Retrieve the access token by using the authorization code:
       return arg.ProcessUserAuthorization(authCode, state);
    }
}

}

这篇关于你使用过Google的Directory API吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆