मूल प्रश्न

मैंने Google डिस्क फ़ोल्डर के लिए एक वॉच चैनल पंजीकृत किया और एक सूचना प्राप्त की कि इसे अपडेट कर दिया गया है। (Google डिस्क API Node.js SDK v3 का उपयोग करना)

{
  host: 'my-development-host.example.com',
  'user-agent': 'APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)',
  'content-length': '0',
  accept: '*/*',
  'accept-encoding': 'gzip,deflate,br',
  'x-forwarded-for': 'xxx.xxx.xxx.xxx',
  'x-forwarded-proto': 'https',
  'x-goog-changed': 'children',
  'x-goog-channel-expiration': 'Tue, 11 May 2021 10:21:53 GMT',
  'x-goog-channel-id': '8f76c160-b229-11eb-a810-93ba607a525b',
  'x-goog-message-number': '1356107',
  'x-goog-resource-id': 'li76v1_bIpI23HBJ13dAqo66pYQ',
  'x-goog-resource-state': 'update',
  'x-goog-resource-uri': 'https://www.googleapis.com/drive/v3/files/1_ihmP2rHCBMXe7aQkW32bjZMccXzsPjE?acknowledgeAbuse=false&supportsAllDrives=false&supportsTeamDrives=false&alt=json'
}

मैं जो फोल्डर देख रहा था उसकी फाइल आईडी 1_ihmP2rHCBMXe7aQkW32bjZMccXzsPjE है और मुझे पता है कि यह x-goog-resource-uri में शामिल है, ताकि मैं उस फाइल आईडी वाले फोल्डर को एक्सेस कर सकूं।

आधिकारिक दस्तावेज़ में, संसाधन आईडी संस्करण-स्वतंत्र है।

नोट: संसाधन आईडी संपत्ति संसाधन के लिए एक स्थिर, संस्करण-स्वतंत्र पहचानकर्ता है। रिसोर्सयूरी संपत्ति वर्तमान एपीआई संस्करण के संदर्भ में देखे गए संसाधन का विहित यूआरआई है, इसलिए यह संस्करण-विशिष्ट है।

मैं संस्करण-स्वतंत्र संसाधन डेटा प्राप्त करना चाहता हूं। हालांकि, मुझे नहीं पता कि x-goog-resource-id, संसाधन आईडी के साथ संसाधन डेटा कैसे प्राप्त करें।

क्या कोई मुझे सलाह दे सकता है, कृपया? यदि संभव हो तो Node.js SDK पर नहीं बल्कि API शैली पर, यह ठीक रहेगा।

संपादित करें

आधिकारिक दस्तावेज़ में नमूना के अनुसार, resourceId संसाधन यूआरआई के समान है और टिप्पणी बताती है कि यह ID of the watched resource है। मुझे लगता है कि देखे गए संसाधन का अर्थ फ़ाइल संसाधन है।

नीचे दिया गया नमूना इससे कॉपी किया गया है:

{
  "kind": "api#channel",
  "id": "01234567-89ab-cdef-0123456789ab"", // ID you specified for this channel.
  "resourceId": "o3hgv1538sdjfh", // ID of the watched resource.
  "resourceUri": "https://www.googleapis.com/drive/v3/files/o3hgv1538sdjfh", // Version-specific ID of the watched resource.
  "token": "target=myApp-myFilesChannelDest", // Present only if one was provided.
  "expiration": 1426325213000, // Actual expiration time as Unix timestamp (in ms), if applicable.
}

मेरे मामले में, मुझे समान प्रतिक्रिया मिली, लेकिन यूआरआई शैली और संसाधन आईडी उपयोग (?) नमूने से भिन्न हो सकते हैं।

{
  kind: 'api#channel',
  id: '8f76c160-b229-11eb-a810-93ba607a525b',
  resourceId: 'li76v1_bIpI23HBJ13dAqo66pYQ',
  resourceUri: 'https://www.googleapis.com/drive/v3/files/1_ihmP2rHCBMXe7aQkW32bjZMccXzsPjE?acknowledgeAbuse=false&supportsAllDrives=false&supportsTeamDrives=false&alt=json',
  expiration: '1620728513000'
}
0
Anselmo Park 11 मई 2021, 12:06
क्या आपका मतलब I would like to get the version-independent resource data. से है कि आप फ़ाइल मेटाडेटा के बारे में अधिक जानकारी प्राप्त करना चाहते हैं? मालिकों और संपादकों आदि की तरह?
 – 
iansedano
11 मई 2021, 13:22
जैसा कि मुझे पता है, फ़ोल्डर संसाधनों सहित फ़ाइल संस्करण द्वारा प्रबंधित की जाती है और फ़ाइल आईडी जिसे मैंने घड़ी को पंजीकृत करने में उपयोग किया है, संस्करण-निर्भर है।
 – 
Anselmo Park
11 मई 2021, 14:32
मैं जानना चाहता हूं कि आपके द्वारा उल्लिखित मेटाडेटा सहित संस्करण-निर्भर डेटा और संस्करण-स्वतंत्र डेटा के बीच क्या अंतर है।
 – 
Anselmo Park
11 मई 2021, 14:34

1 उत्तर

सबसे बढ़िया उत्तर

x-goog-resource-id फ़ाइल/फ़ोल्डर आईडी के समान नहीं है जिसे आप देख रहे हैं।

दस्तावेज़ीकरण से:

एक अपारदर्शी मान जो देखे गए संसाधन की पहचान करता है। यह आईडी सभी एपीआई संस्करणों में स्थिर है।

अधिसूचना संदेश प्रारूप को समझना

इसका मतलब है कि Google देखे गए संसाधन के लिए एक नई आईडी बनाएगा जो फ़ाइल/फ़ोल्डर के लिए अद्वितीय है, लेकिन फ़ाइल/फ़ोल्डर आईडी के समान नहीं है। अपारदर्शी भाग का मतलब है कि यह आपके लिए वॉच चैनल की पहचान करने के लिए सिर्फ एक और आईडी है। Google शायद आंतरिक रूप से इसका उपयोग करता है, लेकिन अपारदर्शी होने का मतलब है कि यह ऐसा कुछ नहीं है जिसके कामकाज को हम देख सकते हैं।

उस संसाधन की पहचान करने के लिए जो बदल गया है, आप चैनल के निर्माण से इन आईडी को स्टोर कर सकते हैं, आप x-goog-channel-id या x-goog-resource-id का उपयोग अपने स्थानीय स्टोर से उनकी तुलना करने के लिए कर सकते हैं।

आप स्थानीय स्टोर एक साधारण JSON हो सकते हैं:

{
    '2iPJp6kI2131231245543aQ_rIFGwE' : '[FILE_ID]'
}

या आप आईडी प्राप्त करने के लिए केवल x-goog-resource-uri को पार्स कर सकते हैं जैसा कि आप पहले ही कर चुके हैं।

बाद में संशोधन और संस्करण-निर्भर/स्वतंत्र डेटा के बारे में अधिक डेटा प्राप्त करने के लिए, आप पुश अधिसूचना प्राप्त करने पर ड्राइव एपीआई में सामान्य जीईटी अनुरोधों का उपयोग करेंगे।

आपके द्वारा लिंक किया गया नमूना

यह watch अनुरोध प्रतिक्रिया दिखाता है:

{
  "kind": "api#channel",
  "id": "01234567-89ab-cdef-0123456789ab"", // ID you specified for this channel.
  "resourceId": "o3hgv1538sdjfh", // ID of the watched resource.
  "resourceUri": "https://www.googleapis.com/drive/v3/files/o3hgv1538sdjfh", // Version-specific ID of the watched resource.
  "token": "target=myApp-myFilesChannelDest", // Present only if one was provided.
  "expiration": 1426325213000, // Actual expiration time as Unix timestamp (in ms), if applicable.
}

यह एकमुश्त प्रतिक्रिया है जो आपको सूचना चैनल बनाते समय प्राप्त होती है। संसाधन बदलने पर आपको मिलने वाली पुश सूचनाओं का यह प्रारूप नहीं है।

डॉक्स

1
iansedano 11 मई 2021, 15:54
आपके उत्तर के लिए धन्यवाद। लेकिन, आधिकारिक दस्तावेज बताता है कि यह देखे गए संसाधन की आईडी है। मैंने अपने प्रश्न में कुछ जोड़ा। असल में, मैं 'संसाधन आईडी' का सटीक अर्थ जानना चाहता हूं।
 – 
Anselmo Park
11 मई 2021, 14:51
आप सही हैं कि मैंने गलत तरीके से शब्द दिया है, मैं अपना जवाब अपडेट कर दूंगा।
 – 
iansedano
11 मई 2021, 15:50
आपकी सलाह के लिए फिर से धन्यवाद। जैसा आपने बताया चैनल बनाते समय मेरा नमूना प्रतिक्रिया है। मैंने इसे इसलिए लिखा क्योंकि यह दिखाएगा कि संसाधन परिवर्तन घटना के शीर्षलेख में संसाधन आईडी का उपयोग किया जाता है।
 – 
Anselmo Park
12 मई 2021, 05:52
वैसे भी, क्या यह सही है कि हम नहीं जानते कि संसाधन आईडी का उपयोग कैसे किया जाता है क्योंकि यह आंतरिक रूप से उपयोग किया जा सकता है? मेरी अंग्रेज़ी अच्छी नहीं है। :-)
 – 
Anselmo Park
12 मई 2021, 05:53
कोई बात नहीं :) मुझे यकीन नहीं है कि संसाधन आईडी इस तरह क्यों है ¯\_(ツ)_/¯opaque शब्द का शाब्दिक अर्थ है - "देखा नहीं जा सकता; पारदर्शी नहीं।" इसलिए यह जानना कठिन है कि इसका क्या कारण है। आप चाहें तो इसका इस्तेमाल कर सकते हैं, लेकिन resourceUri
 – 
iansedano
12 मई 2021, 09:55