3

我按照 spring.io 网站上的说明进行操作:http: //spring.io/guides/gs/accessing-twitter/

而且我没有连接。“findPrimaryConnection()”调用返回 null。我没有看到任何异常抛出。我确实在 .properties 文件中设置了 appId 和 appSecret。

这是控制器代码:

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

    private Twitter twitter;

    private ConnectionRepository connectionRepository;

    @Inject
    public HelloController(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) {
            System.out.println("******** no connection yet: " + connectionRepository.findPrimaryConnection(Twitter.class));
            return "redirect:/connect/twitter";
        }
        System.out.println("******** connection found");
        model.addAttribute(twitter.userOperations().getUserProfile());
        CursoredList<TwitterProfile> friends = twitter.friendOperations().getFriends();
        model.addAttribute("friends", friends);

        return "hello";
    }

}

这是 HTML 表单:

<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>
4

1 回答 1

3

您需要在 Twitter 的应用程序设置中设置回调 URL - 这应该在 Spring 指南中说明。

例如,我的应用程序使用此回调 url:

http://127.0.0.1:3000/auth/twitter/callback

在此处输入图像描述

它在输入字段的正下方进行了解释:

回调URL:认证成功后我们应该在哪里返回?OAuth 1.0a 应用程序应在请求令牌步骤中明确指定其 oauth_callback URL,而不管此处给出的值如何。要限制您的应用程序使用回调,请将此字段留空。

于 2016-01-05T17:18:56.187 回答