ਤੁਹਾਡੇ ਵਰਡ ਐਡ-ਇਨ ਲਈ ਡਾਟਾ ਐਕਸੈਸ ਨੂੰ ਸਟ੍ਰੀਮਲਾਈਨ ਕਰਨਾ
ਕਲਪਨਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇੱਕ ਵਰਡ ਆਫਿਸ ਐਡ-ਇਨ ਵਿਕਸਿਤ ਕਰ ਰਹੇ ਹੋ ਜਿਸ ਨੂੰ ਸ਼ੇਅਰਪੁਆਇੰਟ ਦਸਤਾਵੇਜ਼ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਖਾਸ ਡਾਟਾ ਕੱਢਣ ਦੀ ਲੋੜ ਹੈ। PnPjs ਅਤੇ Microsoft Graph ਵਰਗੇ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਇਹ ਕੰਮ ਸਿੱਧਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਪਰ ਜਦੋਂ ਸ਼ੁਰੂਆਤ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਚੀਜ਼ਾਂ ਜਲਦੀ ਨਿਰਾਸ਼ ਹੋ ਸਕਦੀਆਂ ਹਨ। 🤔
ਸਾਡੇ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਵਿੱਚ, ਅਸੀਂ ਐਡ-ਇਨ ਵਿੱਚ ਉਪਭੋਗਤਾ ਇੰਟਰਐਕਟੀਵਿਟੀ ਨੂੰ ਵਧਾਉਣ ਲਈ SharePoint ਵਿੱਚ ਸਟੋਰ ਕੀਤੀ ਇੱਕ JSON ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਨਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਜਦੋਂ ਕਿ PnPjs ਮਾਈਕਰੋਸਾਫਟ ਗ੍ਰਾਫ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਸੁਵਿਧਾਜਨਕ ਐਬਸਟਰੈਕਸ਼ਨਾਂ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ, ਇਸ ਨੂੰ ਆਫਿਸ ਐਡ-ਇਨ ਦੇ ਅੰਦਰ ਕੰਮ ਕਰਨ ਲਈ ਕੌਂਫਿਗਰ ਕਰਨਾ ਵਿਲੱਖਣ ਚੁਣੌਤੀਆਂ ਪੇਸ਼ ਕਰਦਾ ਹੈ।
ਗ੍ਰਾਫ API ਬੇਨਤੀਆਂ ਲਈ ਪ੍ਰਮਾਣਿਕਤਾ ਸਿਰਲੇਖਾਂ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਤ ਕਰਨ ਵਿੱਚ ਸਾਡੇ ਸਾਹਮਣੇ ਆਈ ਮੁੱਖ ਸਮੱਸਿਆ ਹੈ। ਭਾਵੇਂ ਸਾਡੀ `authService` ਉਮੀਦ ਅਨੁਸਾਰ ਕੰਮ ਕਰਦੀ ਹੈ, ਟੋਕਨਾਂ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਜਾਂ ਮੂਲ ਉਪਭੋਗਤਾ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਤਰੁੱਟੀਆਂ ਪੈਦਾ ਹੋਈਆਂ।
ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਪੜਚੋਲ ਕਰਾਂਗੇ ਕਿ ਇਹ ਸਮੱਸਿਆਵਾਂ ਕਿਉਂ ਵਾਪਰਦੀਆਂ ਹਨ ਅਤੇ PnPjs ਅਤੇ Microsoft ਗ੍ਰਾਫ਼ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਉਦਾਹਰਨ ਪ੍ਰਦਾਨ ਕਰਾਂਗੇ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੀ ਵਿਕਾਸ ਯਾਤਰਾ ਵਿੱਚ ਅਜਿਹੀਆਂ ਰੁਕਾਵਟਾਂ ਦਾ ਸਾਹਮਣਾ ਕੀਤਾ ਹੈ, ਤਾਂ ਇਹ ਗਾਈਡ ਤੁਹਾਡੇ ਲਈ ਹੈ। ਆਓ ਸਮੱਸਿਆ ਨੂੰ ਕਦਮ ਦਰ ਕਦਮ ਨਾਲ ਨਜਿੱਠੀਏ! 🚀
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
graphfi() | Microsoft Graph API ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਇੱਕ PnPjs ਗ੍ਰਾਫ ਉਦਾਹਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਪ੍ਰਮਾਣੀਕਰਨ ਵਰਗੇ ਮਿਡਲਵੇਅਰ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਐਂਟਰੀ ਪੁਆਇੰਟ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ। |
DefaultInit() | PnPjs ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸੰਰਚਨਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਆਮ ਵਰਤੋਂ ਦੇ ਮਾਮਲਿਆਂ ਲਈ ਸੈੱਟਅੱਪ ਨੂੰ ਸੁਚਾਰੂ ਬਣਾਉਣਾ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਫੰਕਸ਼ਨਲ ਗ੍ਰਾਫ API ਏਕੀਕਰਣ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਸਕੈਫੋਲਡਿੰਗ ਲਈ ਲਾਭਦਾਇਕ ਹੈ। |
instance.on.auth.replace() | ਕਸਟਮ ਤਰਕ ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਪ੍ਰਮਾਣੀਕਰਨ ਮਿਡਲਵੇਅਰ ਨੂੰ ਬਦਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਪ੍ਰਮਾਣੀਕਰਨ ਸਿਰਲੇਖਾਂ ਦੇ ਮੈਨੂਅਲ ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਟੋਕਨ। |
context.headers | ਇੱਕ ਗ੍ਰਾਫ API ਬੇਨਤੀ ਨਾਲ ਭੇਜੇ ਗਏ ਸਿਰਲੇਖਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਇੱਕ ਬੇਅਰਰ ਟੋਕਨ ਵਾਲਾ `ਪ੍ਰਮਾਣਿਕਤਾ` ਸਿਰਲੇਖ ਲਗਾਇਆ ਜਾਂਦਾ ਹੈ। |
authService.getGraphApiToken() | ਤੁਹਾਡੀ ਪ੍ਰਮਾਣਿਕਤਾ ਸੇਵਾ ਤੋਂ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ ਕਸਟਮ ਵਿਧੀ। ਸੁਰੱਖਿਅਤ ਅਤੇ ਵੈਧ API ਪਹੁੰਚ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇਹ ਮਹੱਤਵਪੂਰਨ ਹੈ। |
acquireTokenSilent() | MSAL.js ਦਾ ਹਿੱਸਾ, ਇਹ ਵਿਧੀ ਕੈਸ਼ ਤੋਂ ਇੱਕ ਐਕਸੈਸ ਟੋਕਨ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ ਜੇਕਰ ਉਪਲਬਧ ਹੋਵੇ, ਬੇਲੋੜੀ ਉਪਭੋਗਤਾ ਇੰਟਰੈਕਸ਼ਨ ਤੋਂ ਬਚ ਕੇ। |
acquireTokenPopup() | ਜੇਕਰ `acquireTokenSilent()` ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇੱਕ ਪੌਪਅੱਪ ਰਾਹੀਂ ਇੱਕ ਇੰਟਰਐਕਟਿਵ ਟੋਕਨ ਬੇਨਤੀ 'ਤੇ ਵਾਪਸ ਆਉਂਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਲੋੜ ਪੈਣ 'ਤੇ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਵੀ ਪ੍ਰਮਾਣਿਤ ਕਰ ਸਕਦੇ ਹਨ। |
graph.me() | ਮਾਈਕ੍ਰੋਸਾੱਫਟ ਗ੍ਰਾਫ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਉਪਭੋਗਤਾ ਦੇ ਪ੍ਰੋਫਾਈਲ ਡੇਟਾ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ PnPjs ਕਮਾਂਡ, ਟੋਕਨ ਕਾਰਜਸ਼ੀਲਤਾ ਅਤੇ API ਕਨੈਕਟੀਵਿਟੀ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਦੀ ਹੈ। |
...context.headers | ਇੱਕ JavaScript ਸਪਰੈੱਡ ਓਪਰੇਟਰ ਮੌਜੂਦਾ ਸਿਰਲੇਖਾਂ ਨੂੰ ਨਵੇਂ ਸਿਰਲੇਖਾਂ ਨਾਲ ਮਿਲਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ `ਪ੍ਰਮਾਣਿਕਤਾ` ਸਿਰਲੇਖ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨ ਵੇਲੇ ਕੋਈ ਡਾਟਾ ਓਵਰਰਾਈਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ। |
async/await | ਅਸਿੰਕ੍ਰੋਨਸ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਟੋਕਨ ਪ੍ਰਾਪਤੀ ਜਾਂ API ਕਾਲਾਂ, ਨੂੰ ਸਾਫ਼-ਸੁਥਰਾ ਅਤੇ ਕ੍ਰਮ ਵਿੱਚ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ, ਪੜ੍ਹਨਯੋਗਤਾ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਵਿੱਚ ਸੁਧਾਰ ਹੁੰਦਾ ਹੈ। |
ਆਫਿਸ ਐਡ-ਇਨਸ ਵਿੱਚ PnPjs ਅਤੇ Microsoft ਗ੍ਰਾਫ਼ ਦਾ ਸੁਚਾਰੂ ਏਕੀਕਰਣ
ਇੱਕ Word ਐਡ-ਇਨ ਲਈ SharePoint ਤੋਂ JSON ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਨ ਦੇ ਮੁੱਦੇ ਨਾਲ ਨਜਿੱਠਣ ਲਈ, ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ PnPjs ਫਰੇਮਵਰਕ ਅਤੇ Microsoft Graph API ਦੀ ਸ਼ਕਤੀ ਦਾ ਲਾਭ ਉਠਾਉਂਦੀਆਂ ਹਨ। ਹੱਲ `ਗ੍ਰਾਫ਼ਫ਼ੀ` ਉਦਾਹਰਨ ਨੂੰ ਸ਼ੁਰੂ ਕਰਕੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਇਹ ਸਾਰੀਆਂ ਅਗਲੀਆਂ API ਕਾਲਾਂ ਲਈ ਬੁਨਿਆਦ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਮਾਈਕ੍ਰੋਸਾੱਫਟ ਗ੍ਰਾਫ ਨੂੰ ਬੇਨਤੀਆਂ ਸਹੀ ਢੰਗ ਨਾਲ ਰੂਟ ਅਤੇ ਪ੍ਰਮਾਣਿਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। 'DefaultInit()' ਸੰਰਚਨਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਕਸਟਮਾਈਜ਼ੇਸ਼ਨ ਲਈ ਲਚਕਤਾ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹੋਏ ਆਪਣੀ ਸੈੱਟਅੱਪ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਰਲ ਬਣਾ ਸਕਦੇ ਹਨ।
ਇਸ ਲਾਗੂ ਕਰਨ ਦੇ ਨਾਜ਼ੁਕ ਪਹਿਲੂਆਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ `on.auth.replace` ਵਿਧੀ ਦੀ ਵਰਤੋਂ। ਇਹ ਡਿਫਾਲਟ ਪ੍ਰਮਾਣਿਕਤਾ ਵਿਧੀ ਨੂੰ ਬਦਲਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਬੇਨਤੀ ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਐਕਸੈਸ ਟੋਕਨਾਂ ਦੇ ਗਤੀਸ਼ੀਲ ਇੰਜੈਕਸ਼ਨ ਦੀ ਆਗਿਆ ਮਿਲਦੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਇੱਕ ਕਸਟਮ `authService` ਦੁਆਰਾ ਟੋਕਨਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਕੇ ਗ੍ਰਾਫ API ਤੱਕ ਸੁਰੱਖਿਅਤ ਅਤੇ ਵੈਧ ਪਹੁੰਚ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੈ ਜਿੱਥੇ ਪ੍ਰਮਾਣਿਕਤਾ ਵਰਕਫਲੋ ਨੂੰ ਖਾਸ ਸੁਰੱਖਿਆ ਪ੍ਰੋਟੋਕੋਲਾਂ ਦੀ ਪਾਲਣਾ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। 🔐
ਟੋਕਨ ਹੈਂਡਲਿੰਗ ਵਿਧੀਆਂ ਜਿਵੇਂ ਕਿ `acquireTokenSilent()` ਅਤੇ `acquireTokenPopup()` ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਪ੍ਰਮਾਣਿਕਤਾ ਉਪਭੋਗਤਾ-ਅਨੁਕੂਲ ਅਤੇ ਮਜ਼ਬੂਤ ਦੋਵੇਂ ਹੈ। ਇਹ ਵਿਧੀਆਂ ਐਡ-ਇਨ ਨੂੰ ਨਿਰਵਿਘਨ ਕੰਮ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀਆਂ ਹਨ, ਕੈਸ਼ ਤੋਂ ਟੋਕਨਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨਾ ਜਾਂ ਲੋੜ ਪੈਣ 'ਤੇ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਪੁੱਛਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਕਲਪਨਾ ਕਰੋ ਕਿ ਇੱਕ HR ਮੈਨੇਜਰ ਨੂੰ Word ਦੇ ਅੰਦਰ ਕਰਮਚਾਰੀ ਰਿਪੋਰਟਾਂ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੈ। ਐਡ-ਇਨ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਚੁੱਪਚਾਪ ਪ੍ਰਮਾਣਿਤ ਕਰ ਸਕਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਪ੍ਰਬੰਧਕ ਦਾ ਅਨੁਭਵ ਨਿਰਵਿਘਨ ਹੈ। ਇਹ ਹੱਲ ਨੂੰ ਸਕੇਲੇਬਲ ਅਤੇ ਉੱਚ ਕੁਸ਼ਲ ਬਣਾਉਂਦਾ ਹੈ। 🚀
ਅੰਤ ਵਿੱਚ, API ਟੈਸਟਿੰਗ ਕਮਾਂਡਾਂ ਦਾ ਏਕੀਕਰਣ ਜਿਵੇਂ `graph.me()` ਡੀਬੱਗਿੰਗ ਅਤੇ ਟੋਕਨ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਅਨਮੋਲ ਹੈ। ਇਹ ਕਦਮ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਸ਼ੇਅਰਪੁਆਇੰਟ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਪੜ੍ਹਨ ਵਰਗੇ ਹੋਰ ਗੁੰਝਲਦਾਰ ਓਪਰੇਸ਼ਨਾਂ ਵਿੱਚ ਗੋਤਾਖੋਰੀ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਮਾਣੀਕਰਨ ਪ੍ਰਵਾਹ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ। ਮਾਡਿਊਲਰਿਟੀ ਅਤੇ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਜੋੜ ਕੇ, ਇਹ ਸਕ੍ਰਿਪਟਾਂ ਸਮਾਨ ਚੁਣੌਤੀਆਂ ਨਾਲ ਨਜਿੱਠਣ ਲਈ ਇੱਕ ਸਪਸ਼ਟ ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਢਾਂਚਾ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ। ਭਾਵੇਂ ਤੁਸੀਂ ਨਿੱਜੀ ਵਰਤੋਂ ਲਈ ਐਡ-ਇਨ ਬਣਾ ਰਹੇ ਹੋ ਜਾਂ ਐਂਟਰਪ੍ਰਾਈਜ਼-ਵਿਆਪਕ ਹੱਲਾਂ ਨੂੰ ਲਾਗੂ ਕਰ ਰਹੇ ਹੋ, ਇਹ ਸੈੱਟਅੱਪ ਲਚਕਤਾ ਅਤੇ ਭਰੋਸੇਯੋਗਤਾ ਦੋਵਾਂ ਦੀ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ।
ਵਰਡ ਆਫਿਸ ਐਡ-ਇਨ ਵਿੱਚ PnPjs ਨੂੰ ਕਿਵੇਂ ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ ਅਤੇ ਮਾਈਕ੍ਰੋਸਾਫਟ ਗ੍ਰਾਫ ਨੂੰ ਕਿਵੇਂ ਐਕਸੈਸ ਕਰਨਾ ਹੈ
ਇਹ ਹੱਲ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਬੈਕਐਂਡ ਸਕ੍ਰਿਪਟ ਮਾਡਯੂਲਰਿਟੀ ਅਤੇ ਮਾਈਕ੍ਰੋਸਾੱਫਟ ਗ੍ਰਾਫ ਨਾਲ ਏਕੀਕਰਣ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਤ ਕਰਦੇ ਹੋਏ, ਇੱਕ Office ਐਡ-ਇਨ ਵਿੱਚ ਵਰਤੋਂ ਲਈ PnPjs ਨੂੰ ਕਿਵੇਂ ਸੰਰਚਿਤ ਕਰਨਾ ਹੈ।
// Import necessary modules from PnPjs
import { graphfi } from "@pnp/graph";
import "@pnp/graph/users"; // For accessing user data
import { DefaultInit } from "@pnp/graph/presets/all";
// Authentication Service Integration
class AuthService {
async getGraphApiToken(authority) {
// Replace this with your actual token fetch logic
return { accessToken: "your-access-token" };
}
}
// Main configuration class
class GraphConfig {
constructor(authService) {
this.authService = authService;
this.graph = null;
}
async initialize() {
this.graph = graphfi().using(DefaultInit(), (instance) => {
instance.on.auth.replace(async (url, context) => {
const tokenResponse = await this.authService.getGraphApiToken("your-authority");
if (!tokenResponse) {
console.error("Token retrieval failed");
return;
}
context.headers = {
...context.headers,
Authorization: `Bearer ${tokenResponse.accessToken}`
};
});
});
}
async testTokenValidity() {
try {
const userInfo = await this.graph.me();
console.log("User info:", userInfo);
} catch (error) {
console.error("Token is not valid:", error);
}
}
}
// Usage example
const authService = new AuthService();
const graphConfig = new GraphConfig(authService);
await graphConfig.initialize();
await graphConfig.testTokenValidity();
ਵਿਕਲਪਕ ਪਹੁੰਚ: ਟੋਕਨ ਪ੍ਰਬੰਧਨ ਅਤੇ PnPjs ਸ਼ੁਰੂਆਤ ਲਈ MSAL ਦੀ ਵਰਤੋਂ ਕਰੋ
ਇਹ ਵਿਧੀ MSAL.js ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਪ੍ਰਮਾਣਿਕਤਾ ਟੋਕਨਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਗ੍ਰਾਫ API ਪਹੁੰਚ ਲਈ PnPjs ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਕਰਦੀ ਹੈ।
// Import necessary modules
import * as msal from "@azure/msal-browser";
import { graphfi } from "@pnp/graph";
import "@pnp/graph/users";
// MSAL Configuration
const msalConfig = {
auth: {
clientId: "your-client-id",
authority: "https://login.microsoftonline.com/your-tenant-id",
redirectUri: "your-redirect-uri"
}
};
// Initialize MSAL client
const msalClient = new msal.PublicClientApplication(msalConfig);
// Acquire token silently or interactively
async function getToken() {
try {
const response = await msalClient.acquireTokenSilent({
scopes: ["https://graph.microsoft.com/.default"]
});
return response.accessToken;
} catch (error) {
if (error instanceof msal.InteractionRequiredAuthError) {
const response = await msalClient.acquireTokenPopup({
scopes: ["https://graph.microsoft.com/.default"]
});
return response.accessToken;
}
throw error;
}
}
// Initialize PnPjs with MSAL token
const graph = graphfi().using((instance) => {
instance.on.auth.replace(async (url, context) => {
const token = await getToken();
context.headers = {
...context.headers,
Authorization: `Bearer ${token}`
};
});
});
// Test API
async function testApi() {
try {
const user = await graph.me();
console.log("User info:", user);
} catch (error) {
console.error("API call failed:", error);
}
}
// Execute test
testApi();
ਆਫਿਸ ਐਡ-ਇਨਸ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਡਾਟਾ ਪ੍ਰਾਪਤੀ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ
ਹਾਲਾਂਕਿ ਪ੍ਰਾਇਮਰੀ ਚੁਣੌਤੀ PnPjs ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਅਤੇ ਇਸਨੂੰ ਮਾਈਕ੍ਰੋਸਾਫਟ ਗ੍ਰਾਫ ਦੇ ਨਾਲ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਘੁੰਮਦੀ ਹੈ, ਇੱਕ ਬਰਾਬਰ ਦਾ ਨਾਜ਼ੁਕ ਪਹਿਲੂ ਪ੍ਰਮਾਣਿਕਤਾ ਨੂੰ ਸੁਰੱਖਿਅਤ ਅਤੇ ਕੁਸ਼ਲਤਾ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਹੈ। ਆਫਿਸ ਐਡ-ਇਨ ਲਈ, MSAL.js ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਟੋਕਨ ਪ੍ਰਾਪਤੀ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਮਲਟੀ-ਕਿਰਾਏਦਾਰ ਜਾਂ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਦ੍ਰਿਸ਼ਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵੇਲੇ। MSAL ਗੁੰਝਲਦਾਰ ਬੈਕਐਂਡ ਸੇਵਾਵਾਂ ਦੀ ਲੋੜ ਨੂੰ ਘਟਾਉਂਦੇ ਹੋਏ, ਉਪਭੋਗਤਾ ਪ੍ਰਮਾਣੀਕਰਨ ਨੂੰ ਸੁਚਾਰੂ ਬਣਾਉਣ ਲਈ ਢੰਗ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਹਲਕੇ ਵਰਡ ਐਡ-ਇਨਾਂ ਨੂੰ ਤੈਨਾਤ ਕਰਨ ਵੇਲੇ ਜ਼ਰੂਰੀ ਹੈ। 🔑
ਇੱਕ ਹੋਰ ਮੁੱਖ ਵਿਚਾਰ ਗਲਤੀ ਸਥਿਤੀਆਂ ਅਤੇ ਟੋਕਨ ਦੀ ਮਿਆਦ ਸਮਾਪਤੀ ਨੂੰ ਸੰਭਾਲਣਾ ਹੈ। Office ਐਡ-ਇਨ ਸਖਤ ਸਮਾਂ ਸੀਮਾਵਾਂ ਅਤੇ ਸੁਰੱਖਿਆ ਨੀਤੀਆਂ ਦੇ ਨਾਲ ਵਾਤਾਵਰਣ ਵਿੱਚ ਕੰਮ ਕਰਦੇ ਹਨ। ਉਪਭੋਗਤਾ ਵਿਸ਼ਵਾਸ ਅਤੇ ਡੇਟਾ ਸੁਰੱਖਿਆ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ, ਅਸਫਲ ਟੋਕਨ ਬੇਨਤੀਆਂ ਜਾਂ ਗ੍ਰਾਫ API ਕਾਲਾਂ ਲਈ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਵਿਧੀ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਡ-ਇਨ ਕਾਰਜਸ਼ੀਲ ਰਹਿੰਦਾ ਹੈ ਭਾਵੇਂ ਨੈੱਟਵਰਕ ਰੁਕਾਵਟਾਂ ਜਾਂ ਮਿਆਦ ਪੁੱਗੇ ਟੋਕਨਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹੋਏ, ਹੱਲ ਦੀ ਸਮੁੱਚੀ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ ਵਧਾਉਂਦੇ ਹੋਏ। ਉਦਾਹਰਨ ਲਈ, ਸਰਵਰ ਆਊਟੇਜ ਦੇ ਦੌਰਾਨ ਇੱਕ ਦਸਤਾਵੇਜ਼ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਵਾਲਾ ਇੱਕ ਕਰਮਚਾਰੀ ਅਜੇ ਵੀ ਕੈਸ਼ ਕੀਤੇ ਡੇਟਾ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ ਜਾਂ ਇਸਨੂੰ ਨਿਰਵਿਘਨ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦਾ ਹੈ। 🚀
ਅੰਤ ਵਿੱਚ, ਸ਼ੇਅਰਪੁਆਇੰਟ ਡੇਟਾ ਪ੍ਰਾਪਤੀ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਵਿਚਾਰ ਹੈ। ਕਿਉਂਕਿ ਐਡ-ਇਨ ਬਾਹਰੀ API 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ, ਲੇਟੈਂਸੀ ਨੂੰ ਘਟਾਉਣ ਲਈ ਕਾਲਾਂ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਤਕਨੀਕਾਂ ਜਿਵੇਂ ਕਿ ਬੈਚਿੰਗ ਬੇਨਤੀਆਂ ਜਾਂ ਗ੍ਰਾਫ API ਦੇ ਚੋਣਵੇਂ ਗੁਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਸਿਰਫ਼ ਲੋੜੀਂਦਾ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ, ਲੋਡ ਸਮੇਂ ਅਤੇ ਬੈਂਡਵਿਡਥ ਦੀ ਵਰਤੋਂ ਨੂੰ ਘਟਾਉਣ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ। ਭਾਵੇਂ ਇੱਕ JSON ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਨਾ ਜਾਂ ਉਪਭੋਗਤਾ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨਾ, ਇਹ ਅਨੁਕੂਲਤਾ ਐਡ-ਇਨ ਨੂੰ ਤੇਜ਼ ਅਤੇ ਵਧੇਰੇ ਜਵਾਬਦੇਹ ਮਹਿਸੂਸ ਕਰਦੇ ਹਨ, ਇੱਥੋਂ ਤੱਕ ਕਿ ਉੱਚ-ਮੰਗ ਵਾਲੇ ਵਾਤਾਵਰਣ ਵਿੱਚ ਵੀ।
PnPjs ਅਤੇ Microsoft ਗ੍ਰਾਫ਼ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਬਾਰੇ ਆਮ ਸਵਾਲ
- ਕੀ ਹੈ graphfi() ਲਈ ਵਰਤਿਆ?
- graphfi() ਇੱਕ PnPjs ਗ੍ਰਾਫ਼ ਉਦਾਹਰਨ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, Microsoft Graph APIs ਨਾਲ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
- ਮੈਂ ਟੋਕਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਾਂ? on.auth.replace?
- ਦ on.auth.replace ਵਿਧੀ ਤੁਹਾਨੂੰ ਬੇਨਤੀ ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਟੋਕਨ ਪਾਉਣ ਲਈ ਕਸਟਮ ਤਰਕ ਨਾਲ ਡਿਫੌਲਟ ਪ੍ਰਮਾਣਿਕਤਾ ਪ੍ਰਵਾਹ ਨੂੰ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।
- ਕੀ ਕਰਦਾ ਹੈ DefaultInit() ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ?
- DefaultInit() PnPjs ਲਈ ਸੰਰਚਨਾ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦਾ ਹੈ, ਆਮ ਵਰਤੋਂ ਦੇ ਮਾਮਲਿਆਂ ਲਈ ਪਹਿਲਾਂ ਤੋਂ ਬਿਲਟ ਡਿਫੌਲਟ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
- MSAL ਚੁੱਪ ਟੋਕਨ ਬੇਨਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਦਾ ਹੈ?
- acquireTokenSilent() ਉਪਭੋਗਤਾ ਦੀ ਆਪਸੀ ਤਾਲਮੇਲ ਤੋਂ ਬਿਨਾਂ ਕੈਸ਼ ਤੋਂ ਟੋਕਨ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ, ਸਹਿਜ ਸੰਚਾਲਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।
- API ਬੇਨਤੀਆਂ ਨੂੰ ਬੈਚ ਕਰਨ ਦੇ ਕੀ ਫਾਇਦੇ ਹਨ?
- PnPjs ਨਾਲ ਬੈਚਿੰਗ API ਕਾਲਾਂ ਦੀ ਸੰਖਿਆ ਨੂੰ ਘਟਾਉਂਦੀ ਹੈ, ਕਾਰਗੁਜ਼ਾਰੀ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦੀ ਹੈ ਅਤੇ ਡਾਟਾ ਪ੍ਰਾਪਤੀ ਕਾਰਜਾਂ ਲਈ ਲੇਟੈਂਸੀ ਨੂੰ ਘਟਾਉਂਦੀ ਹੈ।
PnPjs ਅਤੇ Microsoft ਗ੍ਰਾਫ਼ ਦਾ ਸਹਿਜ ਏਕੀਕਰਣ
ਇੱਕ Office ਐਡ-ਇਨ ਵਿੱਚ PnPjs ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਸਥਾਪਤ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਅਤੇ Microsoft ਗ੍ਰਾਫ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਨ ਲਈ ਤਿਆਰ ਹੈ। ਇਹ ਫਰੇਮਵਰਕ ਸੁਰੱਖਿਆ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਤਰਜੀਹ ਦਿੰਦੇ ਹੋਏ SharePoint ਸਮੱਗਰੀ ਅਤੇ ਉਪਭੋਗਤਾ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣ ਨੂੰ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ। ਭਰੋਸੇਯੋਗਤਾ ਲਈ ਸਹੀ ਲਾਗੂ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ.
ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਕਦਮਾਂ ਅਤੇ ਉਦਾਹਰਣਾਂ ਦੀ ਪਾਲਣਾ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਪ੍ਰਮਾਣਿਕਤਾ ਅਸਫਲਤਾਵਾਂ ਵਰਗੇ ਆਮ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਬਿਹਤਰ ਉਪਭੋਗਤਾ ਅਨੁਭਵ ਲਈ ਆਪਣੇ ਐਡ-ਇਨ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾ ਸਕਦੇ ਹਨ। ਇਹਨਾਂ ਸਾਧਨਾਂ ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਦੇ ਨਾਲ, ਤੁਹਾਡਾ ਵਰਡ ਐਡ-ਇਨ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਉਤਪਾਦਕਤਾ ਲਈ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸੰਦ ਬਣ ਸਕਦਾ ਹੈ। 🛠️
ਦਫਤਰ ਐਡ-ਇਨ ਵਿੱਚ PnPjs ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
- ਅਧਿਕਾਰਤ PnPjs ਦਸਤਾਵੇਜ਼ - PnPjs ਨੂੰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਵਿਆਪਕ ਗਾਈਡ। PnPjs ਦਸਤਾਵੇਜ਼ਾਂ 'ਤੇ ਜਾਓ
- ਮਾਈਕਰੋਸਾਫਟ ਗ੍ਰਾਫ API ਸੰਖੇਪ ਜਾਣਕਾਰੀ - ਗ੍ਰਾਫ API ਅੰਤਮ ਬਿੰਦੂਆਂ ਅਤੇ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਲਈ ਵਿਸਤ੍ਰਿਤ ਹਵਾਲਾ। Microsoft Graph API ਬਾਰੇ ਜਾਣੋ
- MSAL.js ਲਾਇਬ੍ਰੇਰੀ ਦਸਤਾਵੇਜ਼ - JavaScript ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਪ੍ਰਮਾਣਿਕਤਾ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਨਿਰਦੇਸ਼। MSAL.js ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਪੜਚੋਲ ਕਰੋ
- SharePoint JSON ਫਾਈਲ ਐਕਸੈਸ ਉਦਾਹਰਨਾਂ - SharePoint ਲਾਇਬ੍ਰੇਰੀਆਂ ਤੋਂ ਡਾਟਾ ਪੜ੍ਹਨ ਦੀ ਜਾਣਕਾਰੀ। ਸ਼ੇਅਰਪੁਆਇੰਟ ਡਿਵੈਲਪਰ ਸਰੋਤ ਪੜ੍ਹੋ
- ਆਫਿਸ ਐਡ-ਇਨ ਡਿਵੈਲਪਰ ਗਾਈਡ - ਵਰਡ ਆਫਿਸ ਐਡ-ਇਨ ਬਣਾਉਣ ਅਤੇ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਲਈ ਗਾਈਡ। ਦਫ਼ਤਰ ਐਡ-ਇਨ ਦਸਤਾਵੇਜ਼ਾਂ 'ਤੇ ਜਾਓ