मैं Google एपीआई और Google Analytics में सी # में काम करने के लिए एक सरल सेवा acccount लॉगिन प्राप्त करने की कोशिश कर रहा हूं। मेरी कंपनी पहले से ही Analytics में डेटा प्राप्त कर रही है, और मैं अपने क्वेरी एक्सप्लोरर के साथ जानकारी पूछ सकता हूं, लेकिन नेट में शुरू करना कहीं भी नहीं जा रहा है। मैं पीकेआई के साथ एक Google द्वारा जेनरेट की गई जेसन फ़ाइल का उपयोग कर रहा हूं, क्योंकि दस्तावेज कहता है कि ऐसा सेवा खाता गुगल एपीआई के साथ कंप्यूटर से कंप्यूटर संचार का उचित तरीका है। कोड snipet:सी # में सेवा खाते के साथ 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 में इस जवाब का जवाब दिया और उसका ब्लॉग हाल ही में है। मेरा सवाल है कि क्या मैं इसका उपयोग कर एक्सेस टोकन प्राप्त कर सकता हूं .. इसलिए मैं एम्बेड एपीआई के लिए एक्सेस टोकन का उपयोग कर सकता हूं। coz मुझे एक शून्य पहुंच टोकन मिल रहा है। – CyberNinja
मैं आपकी कक्षा जनरेटर सामग्री का उपयोग करने के लिए बहुत आलसी था। तो इसके बजाय मैंने यह किया: 'न्यूटॉन्सॉफ्ट.जेसन.लिंक.जेब्जेक्ट सीआर = (न्यूटॉन्सॉफ्ट.जेसन.लिंक.जेबब्जेक्ट) जेसन कन्वर्ट.डिसरियलइज ऑब्जेक्ट (जेसन); स्ट्रिंग एस = (स्ट्रिंग) cr.GetValue ("private_key"); 'आपके उत्तर के लिए धन्यवाद - इससे बहुत मदद मिली। – robertpb