我正在尝试使用Microsoft Graph API 创建Planner Plan。根据记录,它要求groupId
。我也创建了Group,但是当我使用Graph Explore创建Planner计划时,它会返回一条403
消息
“您没有访问此项目所需的权限,否则该项目可能不存在。”
我知道,要创建计划,必须先Group.ReadWrite.All
获得的许可Delegated (work or school account)
。我在Azure门户中授予了这些权限,但仍然遇到相同的错误。
一件事是我不知道如何确定我的帐户是“工作帐户还是学校帐户”。我的帐户是由我的租户的管理员创建的,它使用的是我所在组织的,因此我将其作为工作帐户。
我在这里有什么问题,在创建之前是否需要另一个API将计划分配给组?
这是我创建计划者组时的请求正文,我也尝试将“ securityEnabled”切换为true,但是在创建计划时仍然失败
这是我创建计划者计划时的请求正文
我也尝试通过此 API 更新Planner计划,但仍然失败。这似乎Group.ReadWrite.All
权限并不适用于我的帐户
我在SharePoint Online中使用ms-graph.我有一个简单的列表,其中包含一个标题列和3个项目.
我使用以下ms-graph调用按标题过滤项目:
结果是一条错误消息:
字段'标题'不能在过滤器或orderby中引用,因为它未编入索引.提供"首选:HonorNonIndexedQueriesWarningMayFailRandomly "标头以允许此操作,但请注意,此类查询可能会在大型列表上失败.
我知道此调用之前正在使用,当我使用SharePoint REST API时,我可以毫无问题地过滤列表.我也试过不同的租户.另一个事实是,相同的调用在没有startswith过滤器的情况下工作.
几天前我对同一个电话有不同的信息.
"字段'标题'不能在过滤器或orderby中引用,因为它没有被索引.提供' allowthrottleablequeries '首选项允许这样做,但要注意这些查询可能在大型列表上失败."
我注意到,Microsoft Graph API经常$ref
在URI中使用。
例如,可以使用以下HTTP请求将成员添加到Office 365组:
POST /groups/{id}/members/$ref
Run Code Online (Sandbox Code Playgroud)
为什么$ref
使用后缀?这是否提供任何价值或优势?在这种情况下,这是否有特殊含义?
这两种api有什么区别?
我意识到Microsoft Graph .Net SDK正在使用HttpClient
类.
https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph.Core/Requests/HttpProvider.cs
Run Code Online (Sandbox Code Playgroud)
Microsoft自己的文档建议HttpClient
尽可能多地重用实例,而不是每个请求启动一个新实例,这可能会导致SocketException
最终耗尽连接池.
是否有类似的建议,GraphServiceClient
尽可能多地重用?实例化GraphServiceClient
每个请求有什么特别的问题吗?
我正在使用(https://github.com/microsoftgraph/msgraph-sdk-php)Microsoft graph API
从Microsoft帐户检索我的邮件.php SDK
我的代码示例如下
<?php
// Autoload files using the Composer autoloader.
require_once __DIR__ . '/vendor/autoload.php';
use Microsoft\Graph\Graph;
use Microsoft\Graph\Model;
//get the access token to access graph api
$tenantId = "XXXXXX";
$clientId = "XXXXXXXXXXXX";
$clientSecret = "XXXXXXXXXXX";
$guzzleClient = new \GuzzleHttp\Client(array('curl' => array( CURLOPT_SSL_VERIFYPEER => false)));
$url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token?api-version=1.0';
$token = json_decode($guzzleClient->post($url, [
'form_params' => [
'client_id' => $clientId,
'client_secret' => $clientSecret,
'resource' => 'https://graph.microsoft.com/',
'grant_type' => 'client_credentials',
],
])->getBody()->getContents()); …
Run Code Online (Sandbox Code Playgroud) 我正在使用Microsoft机器人框架来创建机器人并将其集成到团队中。该漫游器的部分要求包括每天一次主动向用户发送消息。据我了解,我只能向在机器人之后添加到team / groupChat或直接向机器人发送消息的用户发送消息。我的问题是-我可以以某种方式绕过此限制吗?我的一个朋友叫我去graphAPI的一项新功能,如新测试版的一部分- https://docs.microsoft.com/en-us/graph/api/user-add-teamsappinstallation?view=graph-rest -beta&tabs = http。
对我来说,它似乎与解决方案无关,因为我没有在响应中返回任何数据,因此,如果没有对话参考对象,我仍然无法向用户发送消息。
目前,我的解决方案是简单地在添加频道时在频道中广播一条消息,要求用户通过发送消息来“注册”它。还有其他建议吗?
是否可以通过Microsoft Graph API将共享文件夹复制到OneDrive Business中我自己的配置文件中?
这两个帐户都是OneDrive商业帐户.帐户A与帐户B共享一个文件夹.帐户B已登录,可以查看帐户A中的所有共享项目.所以非常好.
如何将此共享文件夹复制到帐户B的配置文件中?
当我尝试这个POST时,我得到一个401 - 调用者未经过身份验证.
POST https://graph.microsoft.com/v1.0/drives/<remoteItem.driveId>/items/<id>/copy
Content-Type: application/json
Authorization: Bearer xyz...
{
"parentReference": {
"path": "/drive/root:/Documents"
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的范围是:
有什么建议?
我在Graph Rest API中有以下语句,它返回给定DateTime中某个日历的所有事件:
https://graph.microsoft.com/beta/me/calendars/ID/calendarView?startDateTime=2017-02-01T10:31:37Z&endDateTime=2017-02-10T10:31:37Z
我如何使用SDK执行此操作?到目前为止我得到了什么:
ICalendarEventsCollectionPage retrievedEvent = await graphClient.Me.Calendars[id].CalendarView...
我正在使用Graph API从Outlook获取日历数据.为此,我通过OAuth2.0 API对用户进行身份验证.当用户授予权限时,我获得访问令牌没有任何问题.但遗憾的是没有刷新令牌来刷新访问令牌.
这是我的代码:
<?php
$client_id = "MY_CLIENT_ID";
$client_secret = "MY_CLIENT_SECRET";
$redirect = "MY_REDIRECT_URI";
if (!isset($_GET["code"])) {
?>
<a class="btn btn-default-active" href="<?php
echo "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?"
. "client_id=$client_id"
. "&"
. "scope="
. "https%3A%2F%2Fgraph.microsoft.com%2FUser.Read"
. "%20"
. "https%3A%2F%2Fgraph.microsoft.com%2FCalendars.Read"
. "%20"
. "https%3A%2F%2Fgraph.microsoft.com%2FCalendars.Read.Shared"
. "&response_type=code"
. "&redirect_uri=" . urlencode($redirect);
?>">Mit Office 365 verbinden</a><?php
} else {
$code = $_GET["code"];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://login.microsoftonline.com/common/oauth2/v2.0/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST …
Run Code Online (Sandbox Code Playgroud) 我想获得一个访客用户列表Microsoft Graph explorer
.我试过了
?$filter -eq usertype
Run Code Online (Sandbox Code Playgroud)
但似乎usertype
不得而知.
有人可以帮我解决这个问题吗?
microsoft-graph ×12
api ×2
c# ×2
php ×2
.net ×1
api-design ×1
botframework ×1
curl ×1
node.js ×1
office365api ×1
onedrive ×1
outlook ×1
rest ×1