Php 禁止从Outlook api访问导入联系人

Php 禁止从Outlook api访问导入联系人,php,api,outlook,oauth-2.0,office365,Php,Api,Outlook,Oauth 2.0,Office365,我正试图通过Oauth2 Microsoft Online从当前用户那里获取所有联系人,我正确地执行了Oauth2操作,但是当我调用api的url时http://outlook.office.com/api/v1.0/me/contacts我得到一个空字符串,标题中有: HTTP/1.1 403 Forbidden Cache-Control: private Content-Length: 0 Server: Microsoft-IIS/8.5 Set-Cookie: ClientId=QPA

我正试图通过Oauth2 Microsoft Online从当前用户那里获取所有联系人,我正确地执行了Oauth2操作,但是当我调用api的url时
http://outlook.office.com/api/v1.0/me/contacts
我得到一个空字符串,标题中有:

HTTP/1.1 403 Forbidden
Cache-Control: private
Content-Length: 0
Server: Microsoft-IIS/8.5
Set-Cookie: ClientId=QPAIYPSBRKGUWYWEQFBAA; expires=Tue, 27-Sep-2016 12:07:04 GMT; path=/; secure; HttpOnly
request-id: d24bcf29-372e-4bbc-bb7c-f753cde1d1dc
X-CasErrorCode: UserNotFound
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-FEServer: AMSPR03CA0038
没有别的了

这是我用PHP编写的代码,其中包含了OAuth的所有内容。代码使用Laravel:)


为什么我在/me中遇到UserNotFound错误(

我通过在post数据中添加重定向uri解决了我的问题

$postdata = array(
            "client_id" => env('APPIDOUTLOOK'),
            "code" => $request->get('code'),
            "grant_type"=>"authorization_code",
            "scope" => urlencode("https://outlook.office.com/Contacts.Read"),
            "client_secret" => env('APPSECRETOUTLOOK')
            "redirect_uri" => secure_url('/contact/outlook')
        );

通过转到oauthplay.azurewebsites.net确保用户没有问题。尝试登录并执行contacts API调用。沙箱对我来说工作正常,但我通过在postdata中添加一个“redirect_uri”=>secure_url('/contact/outlook')来解决我的问题……啊,缺少重定向。你应该把它作为答案:)
$postdata = array(
            "client_id" => env('APPIDOUTLOOK'),
            "code" => $request->get('code'),
            "grant_type"=>"authorization_code",
            "scope" => urlencode("https://outlook.office.com/Contacts.Read"),
            "client_secret" => env('APPSECRETOUTLOOK')
            "redirect_uri" => secure_url('/contact/outlook')
        );