浏览器不会将我重定向到Twitter进行授权

时间:2018-05-01 10:43:12

标签: java spring thymeleaf twitter-oauth twitter4j

我的问题是我的观点没有将我重定向到Twitter身份验证页面。

我正在做这个教程:https://spring.io/guides/gs/accessing-twitter/

当我运行localhost:8080/connect/twitter时,我得到了这个观点:

<html>
    <head>
        <title>Hello Twitter</title>
    </head>
    <body>
        <h3>Connect to Twitter</h3>
        <span th:if="${social_provider_error}">Provider error (maybe you need to configure the app id and secret?)</span>
        <form action="/connect/twitter" method="POST">
            <div class="formInfo">
                <p>You aren't connected to Twitter yet. Click the button to connect this application with your Twitter account.</p>
            </div>
            <p><button type="submit">Connect to Twitter</button></p>
        </form>
    </body>
</html>

当我点击submit时,我正在接收social_provider_error。任何想法如何解决这个问题?

我的application.proporties位于src/main/resources

spring.social.twitter.app-id=XG5...
spring.social.twitter.app-secret=i0T...

application.java

package application;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

Controller.java

package controller;

import javax.inject.Inject;

import org.springframework.social.connect.ConnectionRepository;
import org.springframework.social.twitter.api.CursoredList;
import org.springframework.social.twitter.api.Twitter;
import org.springframework.social.twitter.api.TwitterProfile;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/")
public class TwitterController {

    private Twitter twitter;

    private ConnectionRepository connectionRepository;

    @Inject
    public TwitterController(Twitter twitter, ConnectionRepository connectionRepository) {
        this.twitter = twitter;
        this.connectionRepository = connectionRepository;
    }

    @RequestMapping(method=RequestMethod.GET)
    public String helloTwitter(Model model) {
        if (connectionRepository.findPrimaryConnection(Twitter.class) == null) {
            return "redirect:/connect/twitter";
        }

        model.addAttribute(twitter.userOperations().getUserProfile());
        CursoredList<TwitterProfile> friends = twitter.friendOperations().getFriends();
        model.addAttribute("friends", friends);
        return "hello";
    }

}

1 个答案:

答案 0 :(得分:1)

<强>解

代码显然很好。我错过了输入Callback-URL的{​​{1}}。