Войти в Google Freebase, используя Google Client lib
Я пытаюсь написать во Freebase, используя MQLWrite. Мне удается писать с помощью Freebase Query. Я ввожу URL и получаю сообщение об ошибке
Требуется логин
Я использую C#.
еще одна вещь, чтобы упомянуть, мне не нужно согласие пользователя. Я создал учетную запись службы в консоли разработчика Google и попытался использовать следующий код из этого URL:
public class Program
{
// A known public activity.
private static String ACTIVITY_ID = "z12gtjhq3qn2xxl2o224exwiqruvtda0i";
public static void Main(string[] args)
{
Console.WriteLine("Plus API - Service Account");
Console.WriteLine("==========================");
String serviceAccountEmail = "SERVICE_ACCOUNT_EMAIL_HERE";
var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { PlusService.Scope.PlusMe }
}.FromCertificate(certificate));
// Create the service.
var service = new PlusService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Plus API Sample",
});
Activity activity = service.Activities.Get(ACTIVITY_ID).Execute();
Console.WriteLine(" Activity: " + activity.Object.Content);
Console.WriteLine(" Video: " + activity.Object.Attachments[0].Url);
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
- Я не понимаю, что означает ACTIVITY_ID, это то же самое, что CLIENT_ID?
- В приведенном выше примере они используют плюс, но я хочу использовать Freebase и не могу найти свойство области где-либо в пространстве имен. Цени любую помощь...:)
1 ответ
Из документации:
MQL Write требует авторизации. Убедитесь, что ваша аутентификация работает правильно.
Ваше приложение должно использовать OAuth 2.0 для авторизации запросов. Другие протоколы авторизации не поддерживаются.
Использование MQL Write
MQL Write поддерживает устаревшие приложения для разработчиков, которые пишут во Freebase. Чтобы использовать MQL Write, разработчики должны связаться с Freebase и запросить дополнительную квоту с помощью формы MQL Write Quota Access Request.
Мне удалось получить доступ только с помощью ключа открытого доступа.
// Simple API example
// Public API access = is from developer console its different then OAuth. (its at the bottom)
var service = new FreebaseService(new BaseClientService.Initializer
{
ApplicationName = "Discovery Sample",
ApiKey = "{Public API access}",
});
Пакет Nuget отсутствует Google.Apis.Auth
который используется для доступа OAuth. Либо API не поддерживает Oauth-доступ, чего не может быть, поскольку в документации указано, что Oauth необходим для доступа к функциям записи. Или что-то не так с пакетом NuGet.
Можете ли вы попробовать написать против этого? Посмотрите, работает это или нет.