Ниже приведён пример использования операции OpenMetabase для подключения к репозиторию пользователя, прошедшего аутентификацию на внешнем сервисе. Предполагается, что все необходимые операции уже выполнены и получены результаты их работы. В запросе передаются идентификатор описания репозитория, полученный ранее ключ состояния, в котором хранятся токены, и ключ настроек сервиса аутентификации. В ответе приходит моникёр соединения с репозиторием.
{
"OpenMetabase" :
{
"tDef" :
{
"id" : "WAREHOUSE"
},
"tCreds" :
{
"oauth" :
{
"oauth_token" : "g0ZGZmNjVmOWI",
"oauth_verifier" : "",
"svcKey" : "0"
},
"pass" : ""
},
"tArg" : ""
}
}
{
"OpenMetabaseResult" :
{
"id" : "DPEAJGROMGHGGOAECDBOBOCJCPGMIIEEKJEBOPGBJKEJKAEH!M",
"sessKey" : "394186",
"sessCookie" : "C1",
"version" : "166",
"defLocale" : "1049",
"driver" : "2"
}
}
public static MbId MetabaseConnectWithOauth(string mbDefinitionId, string token, uint key)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tOpen = new OpenMetabase()
{
tArg = new OpenMetabaseArg() { },
tCreds = new UserCreds() // Учётные данные, с которыми производится подключение
{
oauth = new OAuthLogonData()
{
oauth_token = token,
oauth_verifier = "",
svcKey = key
},
pass = string.Empty
},
tDef = new MbDef() // Описание репозитория, к которому производится подключение
{
id = mbDefinitionId
}
};
// Подключение к репозиторию
MbId mb = somClient.OpenMetabase(tOpen);
return mb;
}
См. также: