静态选项卡不会获取用户的上下文

时间:2017-11-17 09:19:40

标签: javascript html json vue.js microsoft-teams

我在由bot组成的团队应用程序上工作了一段时间。我需要包含一个标签,以允许我的应用向用户显示其他信息。 我仔细地关注了微软文档。

我今天的问题是我没有在静态标签中获取用户信息。

的manifest.json

{
        "$schema": "https://statics.teams.microsoft.com/sdk/v1.0/manifest/MicrosoftTeams.schema.json",
        "manifestVersion": "1.0",
        "version": "1.0.0",
        "id": "{APP_ID}",
        "packageName": "{PACKAGE_NAME}",
        "developer": {
                "name": "Maxence de OpenAgora",
                "websiteUrl": "https://www.microsoft.com",
                "privacyUrl": "https://www.microsoft.com/privacy",
                "termsOfUseUrl": "https://www.microsoft.com/termsofuse"
        },
        "staticTabs": [
                {
                        "entityId": "{IDENTITY_ID}",
                        "name": "{TAB_NAME}",
                        "contentUrl": "{CONTENT_URL}",
                        "websiteUrl": "{MY_WEBSITE_URL}",
                        "scopes": [
                                "team",
                                "personal"
                        ]
                }
        ],
        "configurableTabs": [
                {
                        "configurationUrl": "{MY_URL}/configuration_tab.html",
                        "canUpdateConfiguration": true,
                        "scopes": [
                                "team"
                        ]
                }
        ],
        "permissions": [
                "identity",
                "messageTeamMembers"
        ],
        "validDomains": [
                "{MY_URL}"
        ]
}

文件中存在的所有URL都可以使用,并且可以通过微软访问。

configuration.html

<html>
<body>

<script src="https://statics.teams.microsoft.com/sdk/v1.0/js/MicrosoftTeams.min.js"></script>

<script type="text/javascript">

    microsoftTeams.initialize();
    microsoftTeams.settings.setSettings({
        entityId: "{IDENTITY_ID}",
        contentUrl: "{CONTENT_URL}",
        suggestedDisplayName: "Max Agora",
        websiteUrl: "{MY_WEBSITE_URL}",
        removeUrl: "",
        scope: ['team', 'personal']
    });
    microsoftTeams.settings.setValidityState(true);
</script>
</body>
</html>

index.html (= {CONTENT_URL})

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.css">
    <title>VueJS Test</title>
</head>

<body>

    <div class="ui inverted fixed menu">
        <div class="header item">Tutoriel</div>
    </div>
    <div class="ui main container" id="app" style="padding-top: 50px">
        <div class="ui message">{{ message }}</div>
    </div>
    <script src="https://statics.teams.microsoft.com/sdk/v1.0/js/MicrosoftTeams.min.js">
        microsoftTeams.initialize()
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue-resource/1.3.4/vue-resource.js"></script>
    <script src="/public/js/app.js"></script>
<script>

</script>
</body>
</html>

/public/app.js :我使用此文件测试上下文并显示它,但回调从未调用

let vue = new Vue({
    el: '#app',
    data: {
        message: ""
    },
    mounted () {
        this.message = "Test" // it works
        microsoftTeams.getContext((context) => { this.message = "Toto" });//do nothings
        microsoftTeams.getSettings((settings) => { this.message = "Toto" });//do nothings too
    }

});

我按照以下链接的说明进行操作:

我尝试了文档中提出的两种方法,SDK js和查询参数(通过修改 manifest.json 中的 contentUrl ):

"contentUrl": "{CONTENT_URL}?name={upn}&tenant={tid}&group={groupId}"

感谢您的时间和帮助

0 个答案:

没有答案