0

나는 MQLWrite을 사용하여 Freebase에 글을 쓰려고합니다. Freebase Query를 사용하여 글을 쓸 수 있습니다. 나는 URL을 입력하고 나는 C#을 사용하고Google Freebase Google 클라이언트 라이브러리를 사용한 로그인

로그인이 필요 없다는 오류가 발생합니다.

다른 언급은 사용자 동의가 필요하지 않습니다. 나는 구글 개발자 콘솔에서 서비스 계정을 생성하고,이 URL에서 다음 코드를 사용하여 시도 :

https://code.google.com/p/google-api-dotnet-client/source/browse/Plus.ServiceAccount/Program.cs?repo=samples&r=406dd0081ca556a81621b910eac4445e3309ad1e&spec=svn.samples.406dd0081ca556a81621b910eac4445e3309ad1e

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(); 
     } 
    } 
  1. 내가 방법을 ACTIVITY_ID하지 않는 무엇을, CLIENT_ID으로 그 같은입니까?
  2. 위의 예에서는 더하기를 사용하지만 Freebase를 사용하고 네임 스페이스의 어느 위치에서 스코프 속성을 찾을 수 없습니다. 은 어떤 종류의 도움을 주셔서 감사합니다 ... :) 문서에서
+1

당신은 googles client lib를 사용하고 있습니까? https://www.nuget.org/packages/Google.Apis.Freebase.v1/ 코드를 게시 할 수 있습니까? – DaImTo

+0

@DaImTo 지금까지 수행 한 단계 위에 추가되었습니다. 감사합니다 :) – Gidi

+0

인증을 반환하고 있습니까? 정말 클라이언트 lib와 easer 것입니다. – DaImTo

답변

1

:

MQL Write가 인증을 필요로한다. 인증이 작동하는지 확인하십시오. correctly.

애플리케이션은 OAuth 2.0을 사용하여 요청을 인증해야합니다. 다른 권한 부여 프로토콜은 지원되지 않습니다. MQL이

MQL 쓰기 쓰기 사용

는 로하는 Freebase 쓰기 기존 개발자 응용 프로그램을 지원합니다. MQL Write를 사용하려면 개발자는 Freebase 에 연락하여 MQL Write Quota Access Request form을 사용하여 추가 할당량을 요청해야합니다.

지금까지는 공용 액세스 키로 만 액세스 할 수있었습니다.

// 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 패키지는 OAuth 액세스에 사용되는 Google.Apis.Auth을 누락 된 것으로 나타납니다. API가 쓰기 기능에 액세스하기 위해 Oauth가 필요하다고 언급 한 이후로는 API가 Oauth 액세스를 지원하지 않습니다. 아니면 NuGet 패키지에 문제가 있습니다.

이 문제에 대해 글을 써 볼 수 있습니까? 그것이 효과가 있는지보기.

+0

'공개 API 액세스 - APi 키'를 참조하는 경우 간단한 http 호출로 URL에서 사용하려고했으나 MQLRead를 사용할 때와 같은 방식으로 MQLWrite로는 충분하지 않은 것으로 보입니다. 나는 'scope'옵션을 가지고 있지 않기 때문에 예제에서 코드에서 사용할 수 없었다. – Gidi

+0

나는 범위가 Google.Apis.Auth의 일부라고 생각합니다. 그래서 나는 freebase에 대한 너겟 패키지에 문제가있을 수 있다고 생각합니다. – DaImTo

+0

나는 클라이언트 Lib을 사용하여 API에 물건을 뿌릴 수있는 코드를 가지고있다. 나는 그것을 시험해보고 그것으로 시험 할 것이다. – DaImTo

관련 문제