0

最後の 2 つのツイートだけが必要なのに、なぜ認証が必要なのですか? 接続は必要ないので、最小限の構成を作成したいと思います。Twitter api を理解しているので、つぶやきを取得するためだけに consumerKey/consumerSecret を用意する必要はありません。

豆:

<bean id="twitter" class="org.springframework.social.twitter.api.impl.TwitterTemplate" />

スプリング コントローラー:

@Controller
public class FragmentController {
    @Autowired
    private Twitter twitter;

    @ModelAttribute
    public void global(ModelMap map) {
        map.addAttribute("tweets", twitter.timelineOperations().getUserTimeline("myTwitterUsername", 2));
    }

    @RequestMapping("index.html")
    public String index() {
        return "index";
    }
}
4

1 に答える 1

2

Twitter の API のバージョン 1.1 のリリース時点で、 API に対するすべての操作には、承認が必要ないと思われるものも含めて承認が必要です。

とはいえ、特定のユーザーに対してパブリックであり、プライベートではないリソースをリクエストするために、必ずしもユーザー承認が必要なわけではありません。たとえば、特定のユーザーのツイートは、ユーザーの承認なしで取得できます。ただし、アプリケーションの承認が必要です。

ここで、Twitter の API が少し奇妙になります。ユーザー認証については、Twitter は OAuth 1.0a で保護されており、これは Twitter のすべて (またはほとんどすべて) のリソースに適用されます。アプリのみの承認の場合、Twitter は OAuth 2 クライアント資格情報の付与を使用します。この種の承認は、API 全体のサブセットに適用されます。

幸いなことに、Spring Social は最新のスナップショット ビルド (1.1.0.BUILD-SNAPSHOT) でこれをサポートしています。OAuth2Template を介して、authenticateClient() を呼び出して AccessGrant を取得できます (そしてそこからアクセス トークンを取得します)。次に、TwitterTemplate のインスタンスを作成し、クライアントのアクセス トークンのみを渡し、それを使用して、アプリのみの承認にアクセスする操作用の Twitter の API にアクセスできます。

「最新のスナップショット ビルド」と言うとき、それは文字通りの意味です。昨夜、変更を TwitterTemplate にプッシュしましたが、まだいくつかのテストに耐えることができます. 検索に関して少しテストしましたが、他のすべてのリソースは比較的テストされていません。問題が発生した場合は、 https://jira.springsource.org/browse/SOCIALTWでバグの問題を作成してお知らせください。

于 2013-06-02T01:36:41.427 に答える