मैं अपने आवेदन में Google कैलेंडर को एकीकृत करने का प्रयास कर रहा हूं और मुझे OAuth प्राधिकरण को रीफ्रेश टोकन से गुज़रने में कुछ समस्याएं आ रही हैं। मुझे कोई समस्या नहीं है, लेकिन रिफ्रेश टोकन संपत्ति शून्य है। देखें लाइन में चिह्नित "त्रुटि यहाँ:" जहाँ मैं इस मुद्देमुझे Google OAuth अनुरोध से रीफ्रेश टोकन क्यों नहीं मिल रहा है?
मेरे Asp.Net MVC नियंत्रक (OAuthController
नाम) कर रहा हूँ के लिए निम्नलिखित की तरह दिखता है:
public ActionResult Index()
{
var client = CreateClient();
client.RequestUserAuthorization(new[] { "https://www.googleapis.com/auth/calendar" }, new Uri("http://localhost/FL.Evaluation.Web/OAuth/CallBack"));
return View();
}
public ActionResult CallBack()
{
if (string.IsNullOrEmpty(Request.QueryString["code"])) return null;
var client = CreateClient();
// Now getting a 400 Bad Request here
var state = client.ProcessUserAuthorization();
// ERROR HERE: The RefreshToken is NULL
HttpContext.Session["REFRESH_TOKEN"] = Convert.ToBase64String(Encoding.Unicode.GetBytes(state.RefreshToken));
return JavaScript("Completed!");
}
private static WebServerClient CreateClient()
{
return
new WebServerClient(
new AuthorizationServerDescription()
{
TokenEndpoint = new Uri("https://accounts.google.com/o/oauth2/token"),
AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth"),
ProtocolVersion = ProtocolVersion.V20
}
, _GoogleClientId, _GoogleSecret);
}
मैं गूगल के एपीआई दस्तावेजों में देखते हैं, जो मुझे यह सुनिश्चित करने की आवश्यकता है कि access_type
अनुरोध किया गया है, जिसे रीफ्रेश टोकन भेजने के लिए offline
पर सेट किया गया है। मैं इस मान को अपने प्रमाणीकरण अनुरोध में कैसे सेट करूं?
मैंने अपना कोड नीचे घटा दिया है, और अब मुझे Google से पूछताछ करने का प्रयास करते समय 400 खराब अनुरोध त्रुटि मिल रही है। –
मैंने Google को आगे और आगे HttpRequests को कोडिंग करके मेरी समस्या हल की। मैं कोड को –