Браузер не перенаправляет меня в твиттер для авторизации - PullRequest
0 голосов
/ 01 мая 2018

Моя проблема в том, что мой взгляд не перенаправляет меня на страницу аутентификации 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. Есть идеи, как решить эту проблему?

My 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 голосов
/ 01 мая 2018

РЕШЕНИЕ

Код явно в порядке. Я пропустил ввод Callback-URL, что http://127.0.0.1:8080/connect/twitter.

...