如何定义 Twitter 应用程序权限
How to define Twitter application permissions
根据 Spring Social 文档,使用 Facebook,您可以设置一个范围参数来定义您希望用户授予第 3 方应用程序的权限。例如,您可以只授予第 3 方只能读取用户个人资料的权限,或者您可以授予第 3 方也可以 post 到用户墙上的权限。
但是对于 Twitter,如何设置类似范围的参数来定义您希望用户授予第 3 方应用程序的权限?例如,第 3 方不仅可以读取用户的个人资料,还可以代表用户发推文。
范围内的权限,例如 Facebook 提供的权限,在 OAuth 2 规范中定义。另一方面,Twitter 主要是受 OAuth 1.0a 保护的 API(尽管它确实提供 OAuth 2 样式的仅限应用程序的令牌)并且 OAuth 1.0a 没有范围权限的概念。
也就是说,Twitter 本身确实定义了 3 级权限:只读、读写和直接消息。但是,这些不是可以在授权时请求的范围。它们是应用程序级别的,在您向 Twitter 注册您的应用程序时设置。
由于 Twitter 不提供范围权限,因此 Spring Social 在使用 Twitter 授权时无法提供它。
有关 Twitter 应用程序权限模型的更多详细信息,请参阅 https://dev.twitter.com/oauth/overview/application-permission-model。
根据 Spring Social 文档,使用 Facebook,您可以设置一个范围参数来定义您希望用户授予第 3 方应用程序的权限。例如,您可以只授予第 3 方只能读取用户个人资料的权限,或者您可以授予第 3 方也可以 post 到用户墙上的权限。
但是对于 Twitter,如何设置类似范围的参数来定义您希望用户授予第 3 方应用程序的权限?例如,第 3 方不仅可以读取用户的个人资料,还可以代表用户发推文。
范围内的权限,例如 Facebook 提供的权限,在 OAuth 2 规范中定义。另一方面,Twitter 主要是受 OAuth 1.0a 保护的 API(尽管它确实提供 OAuth 2 样式的仅限应用程序的令牌)并且 OAuth 1.0a 没有范围权限的概念。
也就是说,Twitter 本身确实定义了 3 级权限:只读、读写和直接消息。但是,这些不是可以在授权时请求的范围。它们是应用程序级别的,在您向 Twitter 注册您的应用程序时设置。
由于 Twitter 不提供范围权限,因此 Spring Social 在使用 Twitter 授权时无法提供它。
有关 Twitter 应用程序权限模型的更多详细信息,请参阅 https://dev.twitter.com/oauth/overview/application-permission-model。