Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在spring social中创建FacebookApi时,如何获取accessToken_Facebook_Spring Social_Spring Social Facebook - Fatal编程技术网

在spring social中创建FacebookApi时,如何获取accessToken

在spring social中创建FacebookApi时,如何获取accessToken,facebook,spring-social,spring-social-facebook,Facebook,Spring Social,Spring Social Facebook,我正在尝试使用Spring social连接到facebook帐户,我已将FacebookServiceProvider注入我的服务器端类,如下所示: <bean class="org.springframework.social.twitter.connect.TwitterServiceProvider"> <constructor-arg value="${twitter.consumer.key}" /> <constructor-arg v

我正在尝试使用Spring social连接到facebook帐户,我已将FacebookServiceProvider注入我的服务器端类,如下所示:

<bean class="org.springframework.social.twitter.connect.TwitterServiceProvider">
    <constructor-arg value="${twitter.consumer.key}" />
    <constructor-arg value="${twitter.consumer.secret}" />
</bean>
<bean class="org.springframework.social.facebook.connect.FacebookServiceProvider">
    <constructor-arg value="${facebook.app.id}" />
    <constructor-arg value="${facebook.app.secret}" />
</bean>
在服务器端类中。我能够从TwitterServiceProvider获得TwitterApi,因为我可以获得所需的accessToken和由twitter提供的accessSecret

@Value("${twitter.access.token}")
private String twitterAccessToken;
@Value("${twitter.access.secret}")
private String twitterAccessSecret;
....
TwitterApi api = twitterServiceProvider.getApi(twitterAccessToken, twitterAccessSecret);

我的问题是从哪里获取从FacebookServiceProvider获取FacebookApi所需的accessToken。

我也尝试从FacebookServiceProvider获取accessToken,但我没有这样做。但是,您可以使用来自的帮助获取accessToken,只需在userId上查询UserConnection表即可获取accessToken,或者使用您自己的客户或用户实体类加入该表。

让我更新一下,我已经从facebook开发者页面创建了一个访问令牌,但问题是该令牌仅在1小时内有效。考虑到我想将连接凭据编码到我的应用程序中,这显然不起作用。我已经读到,使用离线访问创建永不过期的令牌是可能的,但是我如何使用facebook开发者页面来实现这一点呢?
@Value("${twitter.access.token}")
private String twitterAccessToken;
@Value("${twitter.access.secret}")
private String twitterAccessSecret;
....
TwitterApi api = twitterServiceProvider.getApi(twitterAccessToken, twitterAccessSecret);