2014-10-14 2 views
0

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

//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, я просто использую имя решения проекта или не использую здесь правильное имя? Что означает applyatinName, и что я должен использовать? Я использую 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); 

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

Благодаря

ответ

1

После дальнейших исследований и внесение изменений в коде добавления в Отдел организации и группы в настоящее время работает. Я должен поставить «/» для «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"); 

Благодаря

0

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

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

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

Удачи вам!

+0

Спасибо за предложение VicTheMagician. Я должен посмотреть на него в ближайшее время, но как реализовать SDK? Это похоже на API приложений Google Apps? – TechPro

+0

Есть некоторые различия между ними в отношении реализации. В новом вам нужно добавить все классы, которые вы хотите, через NuGet Manager в Visual Studio. И тогда вы можете обратиться к ним в коде (например, с помощью Google.Apis;). – VicTheMagician

Смежные вопросы