डाला गया था मैं एक मुद्दा है जहाँ मैं Google कैलेंडर API वी 3 करने के लिए एक insert_calendar
अनुरोध भेजने में चल रहा हूँ, और मैं वापस निम्नलिखित प्रतिक्रिया मिल:Google कैलेंडर API वी 3 insert_calendar 503 दिखाए, लेकिन कैलेंडर सफलतापूर्वक
Sending HTTP post https://www.googleapis.com/calendar/v3/calendars?
503
#<HTTP::Message:0x000000124eb008
@http_header=#<HTTP::Message::Headers:0x000000124eafe0
@http_version="1.1",
@body_size=0,
@chunked=false,
@request_method="POST",
@request_uri=#<Addressable::URI:0x9275f20 URI:https://www.googleapis.com/calendar/v3/calendars?>,
@request_query=nil,
@request_absolute_uri=nil,
@status_code=503,
@reason_phrase="Service Unavailable",
@body_type=nil,
@body_charset=nil,
@body_date=nil,
@body_encoding=#<Encoding:UTF-8>,
@is_request=false,
@header_item=[
["Vary", "Origin"],
["Vary", "X-Origin"],
["Content-Type", "application/json; charset=UTF-8"],
["Content-Encoding", "gzip"],
["Date", "Fri, 25 Aug 2017 20:16:34 GMT"],
["Expires", "Fri, 25 Aug 2017 20:16:34 GMT"],
["Cache-Control", "private, max-age=0"],
["X-Content-Type-Options", "nosniff"],
["X-Frame-Options", "SAMEORIGIN"],
["X-XSS-Protection", "1; mode=block"],
["Server", "GSE"], ["Alt-Svc", "quic=\":443\"; ma=2592000; v=\"39,38,37,35\""],
["Transfer-Encoding", "chunked"]
],
@dumped=false>,
@peer_cert=#<OpenSSL::X509::Certificate:
subject=#<OpenSSL::X509::Name:0x00000012600998>,
issuer=#<OpenSSL::X509::Name:0x000000126009c0>,
serial=#<OpenSSL::BN:0x000000126009e8>,
not_before=2017-08-15 16:06:52 UTC,
not_after=2017-11-07 16:04:00 UTC
>,
@http_body=#<HTTP::Message::Body:0x000000124eaf68
@body="{\n \"error\": {\n \"errors\": [\n{\n \"domain\": \"global\",\n \"reason\": \"backendError\",\n \"message\": \"Backend Error\"\n }\n ],\n \"code\": 503,\n \"message\": \"Backend Error\"\n }\n}\n",
@size=0,
@positions=nil,
@chunk_size=nil
>,
@previous=nil>
Caught error Server error
Error - #<Google::Apis::ServerError: Server error>
मैं गूगल एपीआई रूबी क्लाइंट का उपयोग कर रहा है, यहाँ विवरण:
google-api-client (0.13.1)
addressable (~> 2.5, >= 2.5.1)
googleauth (~> 0.5)
httpclient (>= 2.8.1, < 3.0)
mime-types (~> 3.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.0)
मुद्दा मैं आ रही त्रुटि का सामना नहीं कर रहा है, लेकिन वह कैलेंडर सफलतापूर्वक डाला जाता है।
जैसा कि आप प्रतिक्रिया से देख सकते हैं मुझे कुछ भी वापस नहीं मिलता है जो मुझे बताता है कि यह 503
, जैसे कि Google कैलेंडर आईडी के बावजूद सफल रहा था।
मेरे आवेदन पर इसका असर यह है कि मुझे नहीं पता कि मैंने सफलतापूर्वक समन्वयित किया है, और वास्तव में, दस्तावेज़ों का पालन करके, मैं कार्यान्वयन और घातीय बैकऑफ का उपयोग करके, और इसलिए मैं अपने उपयोगकर्ताओं के Google पर डुप्लिकेट कैलेंडर बनाना जारी रखता हूं कैलेंडर।
अंत में, मेरे पास अनाथ कैलेंडर का एक समूह है जो दिखा रहा है कि मुझे एक स्ट्रिंग मैच से हटाना होगा।
क्या यह उम्मीद है? क्या ऐसा कुछ भी है जो मैं इसे कम करने के लिए कर सकता हूं?
यह नियमितता के साथ होता है, और यह एक अलग मामला नहीं है।
प्रश्न में कोड:
def handle_calendar_response(response, error)
self.update_column('last_synced_at', Time.now.utc)
if error.present?
Airbrake.notify('Sync Calendar Sync Error', {
error: error,
message: error.message,
calendar: self
})
# String match :(
if error.message =~ /not.?found/i || error.message =~ /forbidden/i
Airbrake.notify('Removing user deleted calendar', {
calendar: self,
google_calendar_id: self.google_calendar_id,
error: error,
message: error.message
})
self.publish_to_google = false
self.google_calendar_id = nil
self.save!
end
end
end
...
def insert_calendar
@client.insert_calendar(google_calendar_object) do |response, error|
handle_calendar_response(response, error)
if response.present?
self.google_calendar_id = response.id
self.save!
end
end
end
ये हमारे डेटा मॉडल में समन्वयित कैलेंडर का प्रतिनिधित्व से तरीके हैं। आप इसे सम्मिलित करने के लिए insert_calendar
पर कॉल कर सकते हैं। हम हमेशा Google से प्रतिक्रिया पर एक ही कार्रवाई करते हैं, अगर हम डालने, अपडेट करने या हटाने के लिए, हम हमेशा handle_calendar_response
पर कॉल करते हैं।
क्या आप कृपया कोड भेज सकते हैं कि किस उपयोग का उपयोग कर रहे हैं? –
क्या करेंगे। क्षमा याचना। –
मुझे नहीं लगता कि इसकी उम्मीद है। आप https://developers.google.com/google-apps/calendar/support पर Google के साथ एक बग रिपोर्ट दर्ज कर सकते हैं। Google कैलेंडर एपीआई से लौटाई गई "बैकएंड त्रुटि" और "सर्वर त्रुटि" संदेश देखकर, ऐसा लगता है कि यह उनके अंत में कुछ है। प्रतिक्रिया प्रतिक्रिया में "बैकएंड त्रुटि" के साथ 503 होने पर प्रतिक्रिया को पार्स करके आप कम कर सकते हैं, तो आप अपने कोड में आगे बढ़ते हैं जैसे कि यह सफल था। – petryuno1