Posted at

Azure App ServicesのTwitter認証を使用してサーバサイドでTwitterAPIを使用する為のトークン等を取得する

More than 1 year has passed since last update.

Azure App ServicesではTwitter認証を使用することができます。

これによりサーバサイドでも認証ユーザのアクセストークンを使用してTwitterAPIを利用することができます。

Twitter認証に関しては

Twitter ログインを使用するように App Service アプリケーションを構成する方法

TwitterApiをC#から行う場合にはCoreTweetが便利です、

アクセスユーザのアカウントを使用してTwitterAPIを使用するためにはTwitterのアプリ登録で取得したコンシューマキー,コンシューマシークレットとOAuth認証にて取得されたアクセスキー,アクセスシークレットが必要になります。

それらはフレームワークとしては用意されていないので取得する拡張メソッドを作成してみました。

    public static class TwitterUtils

{
public static void SetupUser(this HttpContext context, out string userId, out string accessToken, out string accessTokenSeacret)
{
var claims = context.User as ClaimsPrincipal;
userId =
claims?.Claims.SingleOrDefault(
x => x.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier")?.Value;
accessToken = context.Request.Headers.GetValues("X-MS-TOKEN-TWITTER-ACCESS-TOKEN")?.FirstOrDefault();
accessTokenSeacret = context.Request.Headers.GetValues("X-MS-TOKEN-TWITTER-ACCESS-TOKEN-SECRET")?.FirstOrDefault();

}
}