Yammer Rest API>基于服务器端脚本(php)的身份验证,无需用户交互

时间:2017-03-22 12:55:30

标签: yammer

我的项目需要使用服务器端脚本(主要是PHP)使用给定的REST API访问yammer数据,而不需要使用yammer的OAuth对话框进行客户端登录。

我已经阅读了这份文件:

https://developer.yammer.com/docs/oauth-2

但是这说,我们需要用户互动。

我想要的是生成client_id和client_Secret以进一步生成访问令牌以进行API调用,但在所有这些过程中,我只在服务器端脚本中使用经过身份验证的用户用户名和密码。

有人可以建议解决方案,还是设计所需的客户端交互?

提前致谢!!

2 个答案:

答案 0 :(得分:0)

您必须让用户至少授权一次该应用程序。这只是OAuth实施的本质,您无法解决它。让用户完成OAuth流程被认为是最佳做法。

如果您有经过验证的Yammer管理员的OAuth令牌,则可以使用impersonationget tokens for end users without them interacting一起使用OAuth流程。

答案 1 :(得分:0)

以下来自Microsoft博客可能对您有所帮助。在答案结束时添加了来源。

  1. 使用以下两种方式之一获取应用程序的验证管理员令牌

    一个。使用验证管理员帐户创建应用程序,然后在应用程序的基本信息页面中,单击“为此应用程序生成开发人员令牌。”请注意,您需要在JS SDK和任何后续调用中使用此应用程序的信息。

    湾使用https://developer.yammer.com/docs/test-token中列出的流程验证管理员帐户,以获取该VA帐户的OAuth令牌。请注意,您必须在以后的所有步骤中使用用于生成此令牌的应用信息。

  2. 在服务器端脚本中获取当前用户的电子邮件地址。
  3. 使用在步骤1中获取的VA令牌进行身份验证,将用户的电子邮件地址传递给https://developer.yammer.com/docs/usersby_emailjsonemailuserdomaincom中记录的“通过电子邮件地址获取用户”端点,然后处理响应 一个。如果对API端点的调用返回200 OK响应,请首先检查“state”字段以确保用户“处于活动状态”,如果是,则存储返回的“id”字段并转到步骤4 湾如果呼叫返回404或“活动”以外的状态,则指示用户完成创建并激活他们的帐户,无论您喜欢。
  4. 获得用户ID后,您可以将其传递给我们的Impersonation端点,以获取该用户的预授权OAuth令牌。此端点记录在https://developer.yammer.com/docs/impersonation,并且必须使用在步骤1中获取的VA令牌来授权调用,以及JS SDK应用程序的consumer_key。
  5. 您现在拥有当前用户的OAuth令牌。生成传递给浏览器的代码时,让客户端JS SDK代码首先调用yam.platform.getLoginStatus,如果没有活动会话并且您有步骤4中的令牌,则将该令牌传递给yam.platform.setAuthToken($ tokenFromStep4,optional_callback_function_if_desired(response))。如果您没有有效令牌,请指示用户完成Yammer帐户的设置。
  6. 像往常一样继续进行JS SDK调用,无需用户进行身份验证。
  7. 来源https://blogs.technet.microsoft.com/askyammer/2016/11/04/preauthorizing-the-yammer-js-sdk/