Azure active directory $SkipToken中的意外字符(m~)

Azure active directory $SkipToken中的意外字符(m~),azure-active-directory,microsoft-graph-api,microsoft-graph-sdks,Azure Active Directory,Microsoft Graph Api,Microsoft Graph Sdks,我正在使用ms graph api for java。在@odata.nextLink内收到的skipToken的开头,在实际的skipToken字符串(如下所示)之前有一个意外字符(m~)。跳过标记字符串在我去掉m~后可以正常工作 但我很困惑为什么会发生这种情况,以及其他意想不到的角色会在未来影响斯基普顿肯吗?我能做些什么来防止这种情况 我使用的是msgraph java sdk版本2.4.0 https://graph.microsoft.com/v1.0/users?$sel

我正在使用ms graph api for java。在@odata.nextLink内收到的skipToken的开头,在实际的skipToken字符串(如下所示)之前有一个意外字符(m~)。跳过标记字符串在我去掉m~后可以正常工作

但我很困惑为什么会发生这种情况,以及其他意想不到的角色会在未来影响斯基普顿肯吗?我能做些什么来防止这种情况

我使用的是msgraph java sdk版本2.4.0

       https://graph.microsoft.com/v1.0/users?$select=givenName%2csurname%2cuserPrincipalName%2cbusinessPhones%2cassignedPlans&$count=true&$orderby=displayName&$filter=&$top=2&$skiptoken=m~X%270100B7013B3B33303030343530303330303033323030333030303435303033313030343130303330303034353030333230303331303033303030343530303334303033383030333030303435303033323030333130303330303033373030333030303332303033303030343530303431303033323030333030303435303033303030333230303330303034353030333730303330303033303030343530303330303034313030333030303435303033323030333130303B313B303B%27

我不清楚您是如何在skiptoken中获得
m~
的,但我可以通过microsoft graph api sdk for java获得用户成功页面,代码如下:

package com.graph;

import java.util.List;

import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.microsoft.graph.authentication.TokenCredentialAuthProvider;
import com.microsoft.graph.models.User;
import com.microsoft.graph.requests.GraphServiceClient;
import com.microsoft.graph.requests.UserCollectionPage;

public class Testgraph {

    public static void main(String[] args) {
        
        final ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
                .clientId("clientId")
                .clientSecret("clientSecret")
                .tenantId("tenantId")
                .build();

        final TokenCredentialAuthProvider tokenCredentialAuthProvider = new TokenCredentialAuthProvider(clientSecretCredential);

        final GraphServiceClient graphClient = GraphServiceClient
            .builder()
            .authenticationProvider(tokenCredentialAuthProvider)
            .buildClient();

        //You can use the code below to get current page users
        UserCollectionPage users = graphClient.users()
                .buildRequest()
                .get();
        List<User> userList=users.getCurrentPage();
        for (User user:userList) {
            System.out.println(user.displayName);
        }
        
        //If you want to get nextpage, you can use below code
        UserCollectionPage users1 = users.getNextPage().buildRequest().get();
        List<User> userList1=users1.getCurrentPage();
        for (User user:userList1) {
            System.out.println(user.displayName);
        }
    }

}

package.com.graph;
导入java.util.List;
导入com.azure.identity.ClientSecretCredential;
导入com.azure.identity.ClientSecretCredentialBuilder;
导入com.microsoft.graph.authentication.TokenCredentialAuthenticationProvider;
导入com.microsoft.graph.models.User;
导入com.microsoft.graph.requests.GraphServiceClient;
导入com.microsoft.graph.requests.UserCollectionPage;
公共类测试图{
公共静态void main(字符串[]args){
final ClientSecretCredential ClientSecretCredential=new ClientSecretCredentialBuilder()
.clientId(“clientId”)
.clientSecret(“clientSecret”)
.tenantId(“tenantId”)
.build();
final TokenCredentialAuthProvider TokenCredentialAuthProvider=新的TokenCredentialAuthProvider(clientSecretCredential);
最终图形服务客户端图形客户端=图形服务客户端
.builder()
.authenticationProvider(TokenCredentialAuthenticationProvider)
.buildClient();
//您可以使用下面的代码获取当前页面用户
UserCollectionPage users=graphClient.users()
.buildRequest()
.get();
List userList=users.getCurrentPage();
for(用户:userList){
System.out.println(user.displayName);
}
//如果你想获得下一页,你可以使用下面的代码
UserCollectionPage users1=users.getNextPage().buildRequest().get();
List userList1=users1.getCurrentPage();
for(用户:userList1){
System.out.println(user.displayName);
}
}
}

尝试用skiptoken以m~开头发送请求后,我能够检索下一组用户。但为什么格式会改变呢?