Добавление пользователя в организационное подразделение и группу с помощью Google Apps Provisioning API

Я написал код в .Net, чтобы создать учетную запись Google с помощью API подготовки Google Apps. Мне удалось создать учетную запись Google, но я не могу добавить пользователя в определенную организационную единицу и группу. Я достиг цели создания учетной записи следующим образом:

//Creating Google Account

 AppsService appService = new AppsService("Mydomain", "AdminUsername", "AdminPassword");

         try
                {

                var account = appService.CreateUser(googleEmail, FirstName.Text, LastName.Text, password);

                }

                catch (Exception ex)
                {
                    ResultsLabel.Text += "<br />Can't create this Google Account";
                }

После добавления пользователя он создается в основном домене «Пользователи» в Google. Но я должен поместить этого пользователя в организационную единицу, к которой он принадлежит, здесь, в моем случае, мне нужно поместить пользователя в организационную единицу «Персонал». Я не уверен, что означает applicationName, я просто использую имя решения проекта или я не использую здесь правильное имя? Что означает applicationName и что мне следует использовать? Я использую CustomerID как «GoogleCustomerId» в следующем коде, который я получил от Google для нашего домена. Я сделал такое кодирование, которое не работает для добавления пользователя в организационную единицу:

//Adding User to Organization Unit


                OrganizationService service = new OrganizationService("mydomain", "applicationName");

                service.setUserCredentials("AdminUsername", "AdminPassword");

                service.UpdateOrganizationUser("GoogleCustomerId", Email.Text, "Staff", "Users"); 

Я получаю это исключение с приведенным выше кодом, чтобы добавить пользователя в организационную единицу:

Google.GData.Client.GDataRequestException was unhandled by user code
  HResult=-2146233088
  Message=Execution of request failed: https://apps-apis.google.com/a/feeds/orguser/2.0/C090ll5hh/[email protected]
  Source=Google.GData.Client
  ResponseString=<?xml version="1.0" encoding="UTF-8"?>
<AppsForYourDomainErrors>
  <error errorCode="1801" invalidInput="" reason="InvalidValue" />
</AppsForYourDomainErrors>

Вот мой код для добавления пользователя в группу, но он тоже не работает, мне нужно добавить пользователя в группу [email protected]:

//Adding User to Group


   service.Groups.AddMemberToGroup("[email protected]", username);

Любая идея по этому поводу, пожалуйста?

Спасибо


person TechPro    schedule 14.10.2014    source источник


Ответы (2)


После дальнейших исследований и внесения изменений в код добавление в организационную единицу и группу теперь работает. Я должен поставить «/» для «String oldOrgUnitPath», так как это верхняя организационная единица, в которую изначально добавляется пользователь.

//Добавление пользователя в организационное подразделение

            OrganizationService service = new OrganizationService("mydomain", "applicationName");

            service.setUserCredentials("AdminUsername", "AdminPassword");

            service.UpdateOrganizationUser("GoogleCustomerId", Email.Text, "Staff", "/"); 

Чтобы добавление в группу работало, я должен внести это изменение в код. Мы не должны использовать @domain.com с именем группы, и переключение позиции идентификатора электронной почты и имени группы сработало.

//Adding User to Group

   service.Groups.AddMemberToGroup(Email.Text, "Staff");

Спасибо

person TechPro    schedule 15.10.2014

Что касается Google, этот API перестанет работать в конце апреля 2015 года.

У меня было несколько проблем с этим API с прошлого года, и вместо этого я решил взглянуть на «новый» API: https://developers.google.com/admin-sdk/directory./

Даже если вы решили эту проблему на данный момент, я бы порекомендовал вам проверить новый API, если вы хотите, чтобы ваше приложение работало без сбоев в будущем.

Удачи!

person VicTheMagician    schedule 21.10.2014
comment
Спасибо за предложение VicTheMagician. Я должен посмотреть на это в ближайшее время, но как реализация SDK? Это то же самое, что и Google Apps Provisioning API? - person TechPro; 22.10.2014
comment
Между ними есть некоторые различия в реализации. В новом вы должны добавить все нужные классы через NuGet Manager в Visual Studio. И затем вы можете ссылаться на них в коде (например, с помощью Google.Apis). - person VicTheMagician; 03.11.2014