【问题标题】:Undefined index: access_token未定义索引:access_token
【发布时间】:2016-10-24 20:26:29
【问题描述】:

我正在尝试为我们学校构建一个基于 php 的邮件应用程序。学校的邮件服务是Office365,我找到了下面链接的教程:

https://dev.outlook.com/restapi/tutorial/php

按照每个步骤(复制和粘贴代码)直到第 5 部分:Using the Mail API,我得到一个授权码,但显然没有令牌。这是怎么回事?我对此完全陌生,所以我不知道如何解决它。

Access Token: 
( ! ) Notice: Undefined index: access_token in C:\wamp64\www\server\authorize.php on line 10
Call Stack
#   Time    Memory  Function    Location
1   0.0002  238816  {main}( )   ...\authorize.php:10

【问题讨论】:

  • 根据错误,似乎是请求令牌失败,因此您无法通过 $tokens 获取 accessToken收藏。要获取详细的错误消息,我建议您使用 Fiddler 来跟踪 HTTP 请求。

标签: php office365 access-token undefined-index


【解决方案1】:

看起来应用程序 ID 也是您的 api 令牌

【讨论】:

  • 这行得通吗?如果是这样,请通过选择我的答案让人们知道。如果您自己解决了问题,请回答您自己的问题。
【解决方案2】:

这是我必须解决的问题。 没有访问令牌很好,本教程应该使用指定的 uri 获取令牌。

在oauth.php中有一个函数

public static function getLoginUrl($redirectUri, $scopes) {

然而在 home.php 中调用是在...

<p>Please <a href="<?php echo oAuthService::getLoginUrl($redirectUri)?>">sign in</a> with your Office 365 or Outlook.com account.</p>

这并没有指定 $scopes 并且由于 $scopes 在 oauth.php 中进一步定义,您可以将 oauth.php 中的函数更改为

public static function getLoginUrl($redirectUri){

然后当我刷新浏览器并单击登录链接时,我得到了我预期的微软登录页面。

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 2016-02-11
    • 2012-12-08
    • 2012-09-18
    • 1970-01-01
    • 2015-03-08
    • 2018-08-02
    • 2012-08-24
    • 2015-03-23
    相关资源
    最近更新 更多