1 + 1 = 3
Wrikeã§ã®çµéšã§ã¯ãæœåšçãªè³Œå ¥è ã¯ãããžã§ã¯ã管çã·ã¹ãã ãéžæãããšãã«ãæé ãªäŸ¡æ Œã®çµ±åã«ãŸããŸãé¢å¿ãæã£ãŠããŸãã å®éãå¿«é©ãªããŒãã¹ããã補åãæ¢åã®ãšã³ã·ã¹ãã ã«é©åãããããšããã¯ã©ã€ã¢ã³ãã®éžæã決å®ããèŠå ã«å€ãããŸããã
ãã¡ãããéçºè ãäŒæ¥ãŠãŒã¶ãŒåãã®æãäžè¬çãªããŒã«ã«éäžããããšã¯éèŠã§ãããMicrosoft補åã¯å¿ ç¶çã«åªå äºé ã§ãã ãã ããçµ±åã®ããã«çµ±åãè¡ããªãããšãããã«éèŠã§ãã 1 + 1ã¯ãå€æ°ã®ãœãªã¥ãŒã·ã§ã³ãã¯ã©ã€ã¢ã³ãã«ä»å 䟡å€ããããããšããæå³ã§ã3ãäžããå¿ èŠããããŸãã
ãããã£ãŠãAzure Active DirectoryãOneDriveãããã³Office 365ãšã®çµ±åãäžè²«ããŠãµãŒãã¹ã«è¿œå ããŸãããããã®æé ã®æçµç®æšã¯ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ãæ°åããšã«åãæ¿ãããããŠã£ã³ããŠéã§æ å ±ãã³ããŒããããå人éã§æ å ±ãã³ããŒãããããªãã·ãŒã ã¬ã¹ãªã¯ãŒã¯ã¹ããŒã¹ãäœæããããšã§ãããŒã ã¯ãŒã¯ã®ããã®ããŒã«ãšãµãŒãã¹ã¯æ·±byã§ã¯ãããŸããã
MS Teamsã¯è«ççãªæ°ããã¹ãããã§ããã 500人以äžã®åŸæ¥å¡ãæ±ããäŒæ¥ã®53ïŒ ãäŒæ¥ã®ã¡ãã»ã³ãžã£ãŒã䜿çšããŠããŸãïŒ SpiceWorksããŒã¿ïŒã ç§ãã¡ã¯ãäœæ¥ãè°è«ããŠãããŠãŒã¶ãŒãè°è«ã®çµæãããã«å®æœããããšã䟿å©ã ãšèããŸããã ãããã£ãŠãããŒã ã¯ãã€ã¯ããœãããšååããŠããã®ãããªç¶æ³ã§æãé©åãªãµãŒãã¹æ©èœãéžæããããŒã ã€ã³ã¿ãŒãã§ã€ã¹ã§ã®ææ©çãªå®è£ ãéããŠèããŸããã
ãã®çµæãWrikeãŠãŒã¶ãŒã¯ã¡ãã»ã³ãžã£ãŒãããããžã§ã¯ããšã¿ã¹ã¯ãçŽæ¥äœæã§ããããã«ãªãããããžã§ã¯ããæ°ããã¿ããšããŠããŒã ã«è¿œå ã§ããããã«ãªããŸããã çµ±åã§ã¯ããã£ã¹ã«ãã·ã§ã³ãšäžŠè¡ããŠãã¿ã¹ã¯ãžã®å€æŽïŒã¹ããŒã¿ã¹ãå®è¡è ãæéãã³ã¡ã³ãïŒã®å°å ¥ããµããŒãããŠããŸãã
ã¡ãã»ã³ãžã£ãŒå ã®ã¿ã€ã ã©ã€ã³ã§ã¬ã³ããã£ãŒãã衚瀺ã§ããããããããžã§ã¯ãã®è°è«ã¯ããå®è³ªçã§æ£ç¢ºã«ãªããè°è«ã®åå è ã®åã«ããŸãã
ãããŠãã¡ãããæãããªæ©äŒãè¿œå ãããŸãã-ã¿ã¹ã¯ã«é¢ããéç¥ã¯ãé»åã¡ãŒã«ã ãã§ãªããTeamsã®ã¡ãã»ãŒãžã§ãåä¿¡ã§ããããã«ãªããŸããã
ãã®æ©èœã®éçºã«ã¯2ãæããããŸããã ãã®éãããŒã ã¯ããªãã«åœ¹ç«ã€ãããããªãèå³æ·±ãçµéšãåŸãŸããã
æè¡é¢ã«ã€ããŠ
Microsoft Teamsã®ã¿ãã¢ããªã±ãŒã·ã§ã³ã¯ã次ã®ãã®ã§æ§æãããŸãã
- manifest.jsonãã¡ã€ã«ãšãªãœãŒã¹ãã¡ã€ã«ãå«ããããã§ã¹ããå«ãã¢ãŒã«ã€ãã
- ããŒãžã®èŠæ±ãåŠçããå€éšHTTPãµãŒãã¹ïŒæ§æãã¿ãã®ã¡ã€ã³ããŒãžãåé€ã
ãã¹ãŠã®ããŒãžã¯ãMicrosoft Teamsã®iframeå ã«ã¬ã³ããªã³ã°ãããŸãã ã¿ãã¢ããªã±ãŒã·ã§ã³ã®ãããã§ã¹ãã®äŸã¯ã MSDNã§èª¬æãããŠããŸã ã ãããã§ã¹ãã¹ããŒã ããããŸãã å·çæç¹ã§ã¯ãåè·¯ã®çŸåšã®ããŒãžã§ã³ã¯0.4ã§ããã
ãããã§ã¹ãã®äž»ãªãã£ãŒã«ãïŒ
-
Id
-GUIDãç°ãªãã¢ããªã±ãŒã·ã§ã³ãŸãã¯ç°ãªãç°å¢ã«å¯ŸããŠäžæã§ããå¿ èŠããããŸãã -
Icons
-解å床ã44x44ããã³88x88ã§ããããã1.5 Kb以äžã®ã¢ã€ã³ã³ã -
configUrl
ã¯ããŠãŒã¶ãŒã«æåã«è¡šç€ºãããURLã§ãã ã¢ããªã±ãŒã·ã§ã³ã®æ§æãéå§ãããŸãã -
canUpdateConfig
ãŠãŒã¶ãŒãæ¢ã«è¿œå ãããã¢ããªã±ãŒã·ã§ã³ã®æ§æãå€æŽã§ãããã©ããã®ãµã€ã³ã -
needsIdentity
-Teams JS APIãéããŠãŠãŒã¶ãŒã«é¢ããæ å ±ãååŸã§ããŸãã -
validDomains
ãã¡ã€ã³ãååšããä¿¡é Œã§ãããã¡ã€ã³ã®é åã ã¯ã€ã«ãã«ãŒããèš±å¯ãããŸãã
ãããã§ã¹ããšãªãœãŒã¹ãæºåããåŸãçµæã®ã¢ãŒã«ã€ããMicrosoft Teamsã«ã¢ããããŒãã§ããŸãã
Microsoft Teamsã€ã³ãã©ã¹ãã©ã¯ãã£ãšã®çžäºäœçšã¯ã Microsoft Teams JS APIã©ã€ãã©ãªã«ãã£ãŠæäŸãããŸã ã ã©ã€ãã©ãªã§ã¯æ¬¡ã®ããšãã§ããŸãã
- Azure Oauth2ãŸãã¯ãã®ä»ã®Oauth2ãããã€ããŒãä»ããŠæ¿èªã®ãããŒãå®è¡ããŸãã
- Azure Active Directoryã«é¢ããææ°ã®ãŠãŒã¶ãŒæ å ±ããã£ãã«IDãããŒã ãããã³ã°ã«ãŒããååŸãã
- ã¿ãèšå®ã®åä¿¡ãšä¿å
- ã€ãã³ãã®ãã³ãã©ãŒãèšå®ããŸããèšå®ã®ä¿åãããŒãã®å€æŽãã¿ãã®åé€ã
- ã¿ãã§éžæãããªããžã§ã¯ããžã®ãªã³ã¯ãçæããŠã¯ãªããããŒãã«ã³ããŒããŸãã
ã©ã€ãã©ãªã䜿çšããã«ã¯ãã©ã€ãã©ãªãæ¥ç¶ããã¢ããªã±ãŒã·ã§ã³ã®åããŒãžã§åæåããå¿ èŠããããŸãã
<script src="https://statics.teams.microsoft.com/sdk/v0.4/js/MicrosoftTeams.min.js"></script> ... <script type="text/javascript"> microsoftTeams.initialize(); </script>
ãã«ãããŒãžæ§æãšAzure ADããã³Wrikeã¢ã«ãŠã³ãã®ãªã³ã¯ãåãããµã³ãã«MsTeamsã¢ããªã±ãŒã·ã§ã³ãæ€èšããŠãã ããã
ããã€ãã®iframeïŒèšå®ãã¿ãïŒããã³Oauth2ãªãã€ã¬ã¯ãã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®è©³çŽ°ã«ã¯ãèšå®ãšã以åã«è¿œå ãããã¿ãã§ã®ã¢ããªã±ãŒã·ã§ã³ã®è¡šç€ºã®äž¡æ¹ã«ã€ããŠãè€éã§ã¯ãããå žåçãªãããŒãå¿ èŠã§ãã
äž»ãªããã»ã¹ïŒ
- ãŠãŒã¶ãŒã¯ãMicrosoft Teamsã«æ°ããã¿ããè¿œå ããŸãã
- æš©éã®ãªããŠãŒã¶ãŒã¯ã以åã«è¿œå ãããã¿ãã«ç§»åããŸãã
- èš±å¯ããããŠãŒã¶ãŒã以åã«è¿œå ãããã¿ãã«ã¢ã¯ã»ã¹ããŸãã
ã¿ããè¿œå ããããã»ã¹ã次ã®å³ã«ç€ºããŸãã éè²ã¯Microsoft TeamsããŒãžãç·è²-ã¢ããªã±ãŒã·ã§ã³ã®ããŒãžãçœè²-ãªã¯ãšã¹ããåŠçããããã®ã³ãŒããšã¢ã¯ã·ã§ã³ã瀺ããŸãã
ããããããŒãžã®ããŒãžã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã«é¢ããåºæ¬æ å ±ãšãAzure ADã§ã®æ¿èªã®ãããŒãéå§ãã[æ¥ç¶]ãã¿ã³ã衚瀺ãããŸãã
ã³ãŒã«ããã¯URLãã³ãã©ãŒã¯ä»¥äžãè¡ãå¿ èŠããããŸãã
- Azure ADã§ãŠãŒã¶ãŒæ å ±ãèŠæ±ããŸãïŒããšãã°ã Microsoft Azure AD Graph APIãäœ¿çš ïŒã
- åä¿¡ããæ å ±ãã©ãåŠçãããã決å®ããŸããã·ã¹ãã ã«æ°ããã¢ã«ãŠã³ããäœæããããæ¢åã®ã¢ã«ãŠã³ãã䜿çšããŸãã
- ããšãã°ãã»ãã·ã§ã³Cookieãçºè¡ããŠãã·ã¹ãã ã«ãã°ã€ã³ããŸãã
- èªèšŒãæåããå ŽåãèªèšŒã¯æ°ãããŠã£ã³ããŠã§éå§ãããã³ãŒã«ããã¯ã¯èªèšŒã®ãšã³ããã€ã³ãã§ãããããã³ãŒã«ããã¯URLããŒãžã¯åçŽã«éããå¿ èŠããããŸãã
- æ¿èªã«å€±æããå Žåãã³ãŒã«ããã¯URLããŒãžã«ã¯ããŠãŒã¶ãŒã«å€±æã®çç±ãããšãã°ããŠãŒã¶ãŒã«ããã¢ã¯ã»ã¹ã®æåŠãAzureã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ã®æ¬ åŠãªã©ã衚瀺ãããŸãã
èšå®ããŒãžã¯èšå®ããŒãžã§ãã ã¿ããè¿œå ãããšããããã³ä»¥åã«è¿œå ããã¿ãã®ã¡ãã¥ãŒã®[æ§æ]ãªãã·ã§ã³ã䜿çšããŠèŠæ±ãããŸãïŒãããã§ã¹ãã§
canUpdateConfig
ãã©ã°ãèšå®ãããŠããå ŽåïŒã
Azure ADã®ãã«ãããã³ãã¢ããªã±ãŒã·ã§ã³ãä»ããŠOauth2æ¿èªãå®è¡ãããµã³ãã«ã³ãŒãïŒã€ãŸããããããããŒãžã®ã³ãŒãäŸïŒã¯æ¬¡ã®ããã«ãªããŸãã
<script src="https://statics.teams.microsoft.com/sdk/v0.4/js/MicrosoftTeams.min.js"></script> <input type="button" onclick="startAuth()" value="..."/> <script type="text/javascript"> microsoftTeams.initialize(); var startAuth = function() { microsoftTeams.authentication.authenticate({ url: 'https://login.windows.net/common/oauth2/authorize' + '?response_type=code%20id_token' + '&scope=openid' + '&response_mode=' + form_post + '&client_id=' + <YOUR_AZURE_APP_CLIENT_ID> + '&resource=https%3a%2f%2fgraph.windows.net' + '&nonce=' + <MS_NONCE> + '&state=' + <OAUTH2_STATE> + '&redirect_uri=' + encodeURIComponent('http://localhost/callback'), width: 700, height: 500, successCallback: onAuthSuccess, failureCallback: onAuthFailure }); }; var onAuthSuccess = function() { console.log('Auth success'); document.location.href='http://localhost/setup'; }; var onAuthFailure = function() { console.log('Auth failed'); microsoftTeams.settings.setValidityState(false); }; </script>
ãã©ã¡ãŒã¿ïŒ
-
redirect_uri
-GETãªã¯ãšã¹ãidTokenãæž¡ãããã³ãŒã«ããã¯ãã³ãã©ã®URLã Azure ADã®ã¢ã«ãŠã³ããã·ã¹ãã å ã®ã¢ã«ãŠã³ãã«æ¥ç¶ããããã®ã¢ã¯ã»ã¹ããŒã¯ã³ããªãã¬ãã·ã¥ããŒã¯ã³ãããã³ãŠãŒã¶ãŒæ å ±ãååŸã§ããŸãã -
YOUR_AZURE_APP_CLIENT_ID
ã¢ããªã±ãŒã·ã§ã³èå¥åã -
MS_NONCE
ã¯ã©ã³ãã ã«çæããããã³ã¹ã§ãããAzure Oauth2ã®ç¶æ ã«é¡äŒŒããŠããŸãã -
OAUTH2_STATE
-Oauth2ç¶æ ãã³ãŒã«ããã¯ãã³ãã©ãŒã§ç¢ºèªããå¿ èŠããããŸãã
ãããŒèªèšŒã®éå§ã¯ãTeams JS APIã®
microsoftTeams.authenticate
ã¡ãœããã«ãã£ãŠæäŸãããŸãã
window.open
ãæ瀺çã«åŒã³åºãå¿ èŠã¯ãããŸããã
onAuthSuccess
ã
onAuthFailure
ã¯ãèªèšŒãŠã£ã³ããŠãéããããœãŒã¹ããŒãžã®ã³ã³ããã¹ãã§åŒã³åºãã
onAuthFailure
ã
ã¿ã€ã ã¢ãŠãã«é¢ããŠ
Oauth2 flow
ãéå§ããããå®å šã§ä¿¡é Œæ§ã®é«ãæ¹æ³ã¯ã
OAUTH2_STATE
ãçæãããŠãŒã¶ãŒãlogin.windows.netã«ãªãã€ã¬ã¯ããããã³ãã©ãŒãèŠæ±ããããšã§ã ã
Azure ADã®ã¢ããªã±ãŒã·ã§ã³ã®äœæãšæ§æã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
èšå®ãä¿åããããã®ã»ããã¢ããããŒãžã®ãµã³ãã«ã³ãŒãã以äžã«ç€ºããŸãã
<script src="https://statics.teams.microsoft.com/sdk/v0.4/js/MicrosoftTeams.min.js"></script> <input id="name" type="text" placeholder="Enter your name" onkeyup="validate()"/> <script type="text/javascript"> microsoftTeams.initialize(); var isNameValid = function() { return jQuery('#name').val().trim().length > 0; } var validate = function() { // Save microsoftTeams.settings.setValidityState(isNameValid()); }; microsoftTeams.settings.registerOnSaveHandler(function (saveEvent) { if (!isNameValid()) { saveEvent.notifyFailure("We couldn't save your tab settings. Please enter your name."); return; } microsoftTeams.settings.setSettings({ contentUrl: 'http://localhost/tabContent', suggestedDisplayName: "Your Tab Name", websiteUrl: "http://localhost" }); saveEvent.notifySuccess(); }); </script>
ãã©ã¡ãŒã¿ïŒ
-
contentUrl
ã¿ããéããããšãã«è¡šç€ºãããããŒãžã®ã¢ãã¬ã¹ã -
suggestedDisplayName
ã¿ãã®ååã -
websiteUrl
-Microsoft Teamsã¡ãã¥ãŒãããªã³ã¯ãéããŸãã
次ã®ã³ãŒãã¯ã次ã®Teams JS APIã¡ãœããã䜿çšããŸãã
-
microsoftTeams.settings.setValidityState
[ä¿å]ãã¿ã³ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã -
microsoftTeams.settings.registerOnSaveHandler
èšå®ãä¿åããããã®ã€ãã³ããã³ãã©ãŒã -
saveEvent.notifyFailure
ãnotifySuccess
èšå®ãä¿åããéã®æåãŸãã¯å€±æã«ã€ããŠTeamsã€ã³ãã©ã¹ãã©ã¯ãã£ã«éç¥ããŸãã -
microsoftTeams.settings.setSettings
ã¿ãã®èšå®ãä¿åããŸãã
以åã«è¿œå ãããã¿ããžã®ãŠãŒã¶ãŒãã°ã€ã³ã®ããã»ã¹ãæ€èšããŸãã ããã§ã¯æ¬¡ã®ãªãã·ã§ã³ãå¯èœã§ãã
- ãŠãŒã¶ãŒã¯æ°èŠã§ãããã·ã¹ãã ã«é¢é£ä»ããããŠããŸããã
- ã·ã¹ãã ã§èªèãããŠããããèš±å¯ãããŠããªããŠãŒã¶ãŒã
- èš±å¯ãŠãŒã¶ãŒã
èªèšŒã¯ãã·ãŒã ã¬ã¹ãã§ãããããAzure ADã§ã®èªèšŒåŸã«ã·ã¹ãã ã®ã¢ã«ãŠã³ãã«æ°ãããŠãŒã¶ãŒãè¿œå ããã ãã§ãã ããã¯ã以åã«è¿œå ãããã¿ããå ¥åããããã»ã¹ã§ãã
Microsoft Teamså ã®çµç¹æ§é ã¯æ¬¡ã®ãšããã§ãã
- ããŒã ã¢ã«ãŠã³ãã«ã¯å€ãã®ããŒã ãå«ããããšãã§ããŸãã
- ããŒã ã¯å€ãã®ãã£ãã«ãæã€ããšãã§ããŸãã
- ãã£ã³ãã«ã«ã¯å€ãã®ã¿ããå«ããããšãã§ããŸãã
ã¿ãèšå®ãšãŠãŒã¶ãŒæ å ±ã¯ã
context
ãš
settings
ïŒMicrosoft Teams JS APIããïŒãä»ããŠå©çšã§ããŸãã
-
microsoftTeams.getContext
æ§æããŒãžããã³ã¿ãå ã®ããŒãžã§å©çšå¯èœã -
microsoftTeams.settings.getSettings
æ§æããŒãžã§ã®ã¿äœ¿çšå¯èœã
課é¡ãšè§£æ±ºç
ãã®ãããªæ§é ã§ã¯ã©ã®ãããªå°é£ãçããå¯èœæ§ããããŸããïŒ
WrikeããŒã ã¯ããŠãŒã¶ãŒãAzure ADã§æ¿èªãããããšã決å®ããŸããã ãŠãŒã¶ãŒããŒã¿ïŒ
upn
ïŒãŠãŒã¶ãŒããªã³ã·ãã«åãŸãã¯ã¡ãŒã«ïŒã
teamId
ã
channelId
ã¯JS APIããã¢ã¯ã»ã¹ã§ããŸããããã®ããŒã¿ã¯ããã¯ãšã³ãåŽã§æ€èšŒã§ããŸãã
teamId
ADã®ã¢ããªã±ãŒã·ã§ã³ã管çè æš©éãå¿ èŠãšããæš©éãèŠæ±ããå Žåã®ã¿ã ããã¯ãAzure Graph APIã®æ©èœã«ãããã®ã§ããçµç¹ã®æ§é ã«é¢ããæ å ±ã¯ã管çè ã®åæããªããã°å©çšã§ããŸããã ãã®æ¹æ³ã¯ãAzure AD管çè ã®ã¿ããã£ãã«ã«ã¿ããè¿œå ã§ãããšããç¹ã§äžäŸ¿ã§ãã
ãã£ã³ãã«ã«è€æ°ã®ã¿ããããå ŽåããŠãŒã¶ãŒãã©ã®ã¿ããéã
tabId
ãŸããïŒ
tabId
ã¯ãããŸããããçæããããšã¯ã§ããŸããã詳现ã¯ä»¥äžãåç §ããŠãã ããïŒã ã«ã¹ã¿ã èšå®ã®ä¿åã¯settings.customSettingsã§ã®ã¿äœ¿çšã§ããŸããã
settings.customSetting
ããŒãžããã®ã¿ã¿ãããŒãžãã
settings
ã¢ã¯ã»ã¹ããããšã¯ã§ããŸããã
ãããã®åé¡ã解決ããã«ã¯ïŒ
teamId
ã
channelId
ã
tabId
ã«é¢ããããŒã¿åéã¯ããŠãŒã¶ãŒã®æ¿èªäžã«æŽçããã¢ããªã±ãŒã·ã§ã³ã®åŽã«ä¿åã§ããŸãã ã¿ãå ã®ãŠãŒã¶ãŒããã®ãªã¯ãšã¹ãã¯ãçŸåšã®ã³ã³ããã¹ãïŒ
microsoftTeams.getContext
ïŒã®ããŒã¿ã«åºã¥ããŠæ€èšŒã§ããŸãã
ã¿ãèå¥åã¯ãããšãã°æ¬¡ã®ããã«æ§æããŒãžã«è¿œå ããããšãã«çæã§ããŸãã
microsoftTeams.settings.registerOnSaveHandler(function (saveEvent) { microsoftTeams.settings.getSettings(function(settings) { var tabId = generateOrGetTabId(settings); var customSettings = { tabId: tabId }; microsoftTeams.settings.setSettings({ contentUrl: 'http://localhost/tabContent?tabId=' + tabId, ... customSettings: JSON.stringify(customSettings) }); saveEvent.notifySuccess(); }) });
ããŒãžã³ãŒãã®[
settings
]ã¿ãã«ã¢ã¯ã»ã¹ã§ããªãããã
contentUrl
query string
ãã©ã¡ãŒã¿ãŒãæž¡ããŸãã æåã«ã¿ããè¿œå ãããšãã«ã®ã¿
tabId
ãçæããŸãã åæ§ææã«ã¯ã以åã«æå®ãããã®ã䜿çšããŸãã GenerateOrGetTabIdããããæ åœããŸãã
settings.customSettings
ãã£ãŒã«ãã䜿çšãããšãçæããã
tabId
æååãšã·ãªã¢ã«åãããJSONãªããžã§ã¯ãã®äž¡æ¹ãšããŠä¿åã§ããŸãã
çµè«ãšããŠãã¿ããŸãã¯ã¿ãå ã®ç¹å®ã®ã³ã³ãã³ããžã®ãªã³ã¯ãçæããæ¹æ³ã§ãã
deepLinks
ãªã³ã¯ã«ã€ããŠ
deepLinks
ãããšæããŸãã
å·çæç¹ã§ã¯ããªã³ã¯ãçæããæ¹æ³ã¯2ã€ãããŸãã
- ã€ã³ã¿ã©ã¯ãã£ã
microsoftTeams.shareDeepLink
ã䜿çšããŸãã ãã®å ŽåããŠãŒã¶ãŒã¯ååã®å ¥åãæ±ãããããªã³ã¯ãã¯ãªããããŒãã«ã³ããŒãããŸãã ãã®ãããªãªã³ã¯ã¯ãã£ããã§èªèããããŠãŒã¶ãŒãå ¥åããããã¹ããšããŠã¬ã³ããªã³ã°ãããæå®ãããentityId
ããã³entityId
ã¿ãã«ç§»åããŸãã 詳现ãªèª¬æã¯ãã¡ãã§ãã - é察話å-ã¢ããªã±ãŒã·ã§ã³IDïŒãããã§ã¹ãããïŒãã¿ãã®ã³ã³ããã¹ããããã³ä»ã®ãã©ã¡ãŒã¿ãŒïŒ
entityId
ãentityId
ãªã©ïŒãèæ ®ããŠãªã³ã¯ã圢æããŸãã ãã®ãããªãªã³ã¯ã¯ãããšãã°ãããããã®ã¡ãŒã«ãã¡ãã»ãŒãžãªã©ãããŸããŸãªéç¥ã«äœ¿çšã§ããŸãã
deepLinks
圢ææ¹æ³ã®èª¬æã¯ã MSDNã«ãããŸãã ããã«ãäž¡æ¹ã®ã¡ãœããã¯
microsoftTeams.settings
䜿çšããå¿ èŠããªããããã¿ãããŒãžã®ã³ãŒãã§å®è¡å¯èœã§ããããšã«æ³šæããŠãã ããã
Teams JS APIã¯ç©æ¥µçã«éçºããŠãããéçºããã»ã¹äžã«ããŒãžã§ã³ã0.2ãã0.4ã«å€æŽãããŸããã ããã«ãããããšã¿ãã®ãããã§ã¹ããäžè¬çã«ãªããŸããã
Wrikeãšã®çµ±åã«ã¯ãAzure AD Graph APIãšMicrosoft Graph APIã䜿çšãããŸããã ãã®ããã»ã¹ãšãªãªãŒã¹åŸããã€ã¯ããœããã®ååãšç·å¯ãªã³ãã¥ãã±ãŒã·ã§ã³ãåãããã£ãŒãããã¯ãèæ ®ããŸããã
Wrikeã®ã¡ã³ããŒãã³ãã¥ãã±ãŒã·ã§ã³ã®éçšã§çºèšããããšããé¡ãã®äžéšã
- ããŒã æ å ±ã¯ãTeams JS APIããã³/ãŸãã¯Graph APIã§å©çšå¯èœã§ãªããã°ãªããŸããã
- microsoftTeams.settingsèšå®ãžã®ã¢ã¯ã»ã¹ã¯ãèšå®ããŒãžã ãã§ãªãã¿ãã§ãå¿ èŠã§ãã
- tabIdã¯ãããŸãããã2çš®é¡ã®ãã£ãŒããªã³ã¯ãtabIdã®æ¬ åŠãéšåçã«çžæ®ºããŸããã
- Graph Oauth2æ¿èªã«ã¯ãããæè»ãªã¹ã³ãŒãã·ã¹ãã ãå¿ èŠã§ããããã¯ãAzure ADããã³ã管çè ãã¿ããæ§æããããšãªããçŸåšã®ããŒã ã®ã¡ã³ããŒã®ãªã¹ããååŸããããã«å¿ èŠã§ãã
- ã¹ã¿ã€ã«ã®ã«ã¹ã¿ãã€ãºãããã€ãã£ããMicrosoft Teamsã¹ã¿ã€ã«ãžã®ã¢ã¯ã»ã¹ãæšæºã³ã³ãããŒã«ã®å€æŽã®ããã®ãããæè»ãªæ§æããŒãžèšå®ã ãã®ãããªèšå®ã«ãããæ§æãŠã£ã¶ãŒããããèªç±ã«äœæã§ããŸãã
ããŒã æ§æãžã®ã¢ã¯ã»ã¹ã®åé¡ã¯ã Bot APIã§æ¢ã«å¯ŸåŠãããŠããŸã ã Deep Linksã®æ©èœã®äžéšã¯ãããŒã ã®ãªãªãŒã¹ã®å°ãåã«å ¬éãããŸããã ãããããREST APIã¬ãã«ã§ã®ããŒã ãµããŒãã¯Microsoft Graph APIã«å®è£ ãããŸããããã¯ããã®APIãç©æ¥µçã«éçºãããŠãããOffice 365ã®ããŸããŸãªã³ã³ããŒãã³ããšã®å¯Ÿè©±ã䌎ãããã§ãã
ã¡ãªã¿ã«ãã¬ãã¥ãŒçšã®æ°ããç³è«æžãéä¿¡ããããã®ãã©ãŒã ã¯ãã¡ãã«ãããŸã ã Wrikeãšã¯ã¹ããªãšã³ã¹ãããªãã«ãšã£ãŠæçã§ãããMicrosoft TeamsãŠãŒã¶ãŒãããŒã ã¯ãŒã¯ã®ããã®ããã«äŸ¿å©ãªããŒã«ãå ¥æã§ããããšãé¡ã£ãŠããŸãã
èè ã«ã€ããŠ
Alexander Belyaev ã補åãããŒãžã£ãŒã 圌ã¯ãWrikeãªãŒãã£ãšã³ã¹ã®ãžã§ãã¹ããŒãªãŒã®éçºïŒå®äºãã¹ããžã§ãã®ã³ã³ã»ããã®ãã¬ãŒã ã¯ãŒã¯å ïŒãæ åœããããã«å¿ããŠããŠãŒã¶ãŒãäœæ¥ã®å žåçãªã·ããªãªã®ãã¬ãŒã ã¯ãŒã¯ã§äœ¿çšããæ©èœãæ åœããŠããŸãã 圌ã¯Wrike APIã®éçºãè¡ã£ãŠãããæŠç¥çããŒãããŒãšã®çµ±åãæ åœããŠããŸãã 圌ã¯ç«ãšçŠ ã倧奜ãã§ãã
Oleg Vashenkov ãããã¯ãšã³ãéçºè ã Microsoftãšã®çµ±åã®ã³ã³ããã¹ãã§ã¯ãTeamsã¯ãã¢ã«ãŠã³ãã®æ¿èªãäœæãšçµ±åãTeamså ã§äœæ¥ããããã®APIã®ãµããŒããšæ¡åŒµãæ åœããŸãã 圌ã¯ããããã«ãœã³ã奜ãã§ã-æ°ãããã©ãããã©ãŒã ãããã€ã¹ã®ã¢ã€ãã¢ãå®çŸããä»äºãç掻ããã¬ãŒãã³ã°ããã¥ãŒãã³ã°ã競æãªã©ã®ãã·ã³ã®ããã®åœŒèªèº«ã®ãœãªã¥ãŒã·ã§ã³ãè©ŠããŠã¿ãŠãã ããã
ããã§ã¯ãMicrosoft Azureãç¡æã§è©Šçšã§ããããšããç¥ããããŸãã