C#, Google API 및 Google Analytics에서 간단한 서비스 acccount 로그인이 작동하도록 노력하고 있습니다. 우리 회사는 이미 데이터를 애널리틱스로 가져오고 있으며, 쿼리 익스플로러로 정보를 쿼리 할 수는 있지만, 닷넷을 시작하는 것은 어디에도 없습니다. 문서에서 그러한 서비스 계정이 Googla API와의 컴퓨터 간 통신을위한 적절한 방법이라고 말하면서 Google에서 생성 한 json 파일을 PKI와 함께 사용하고 있습니다. 코드 snipet :C#에서 서비스 계정으로 Google API에 로그인하는 방법 - 유효하지 않은 자격증 명
public static GoogleCredential _cred;
public static string _exePath;
static void Main(string[] args) {
_exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Replace(@"file:\", "");
var t = Task.Run(() => Run());
t.Wait();
}
private static async Task Run() {
try {
// Get active credential
using (var stream = new FileStream(_exePath + "\\Default-GASvcAcct-508d097b0bff.json", FileMode.Open, FileAccess.Read)) {
_cred = GoogleCredential.FromStream(stream);
}
if (_cred.IsCreateScopedRequired) {
_cred.CreateScoped(new string[] { AnalyticsService.Scope.Analytics });
}
// Create the service
AnalyticsService service = new AnalyticsService(
new BaseClientService.Initializer() {
HttpClientInitializer = _cred,
});
var act1 = service.Management.Accounts.List().Execute(); // blows-up here
그것은 모두가 잘 컴파일하지만 그것이 실행() 문을 명중 할 때, GoogleApiException
오류가 발생합니다 :
[잘못된 자격 증명] 지역 [인증 - 헤더] 이유 [authError을 ] 도메인 [글로벌]
무엇이 누락 되었습니까?
코드를 사용하여 블로그에 사용 된 것처럼 보입니다. coz 당신은 2016 년에 이것에 대답했고 그의 블로그는 최근입니다. 내 질문에이 액세스 토큰을 사용할 수 있습니다. 그래서 embed API에 대한 액세스 토큰을 사용할 수 있습니다. 널 액세스 토큰을 받고있어. – CyberNinja
클래스 생성기를 사용하기에는 너무 게을 렀습니다. 대신에 저는 이것을했습니다 :'Newtonsoft.Json.Linq.JObject cr = (Newtonsoft.Json.Linq.JObject) JsonConvert.DeserializeObject (json); string s = (string) cr.GetValue ("private_key");'답변 해 주셔서 감사합니다. – robertpb