saveAccessTokenResponse method

Future<String?> saveAccessTokenResponse(
  1. String responseBodyAccessToken
)

AccessTokenで受信したレスポンスボディの内容を、UserIDをキーとしてデータベースに保存 もしも、ResponseBodyにuser_idが含まれていなければ、false:エラーを返却するので注意する

Implementation

Future<String?> saveAccessTokenResponse(String responseBodyAccessToken) async {
  OAuthDataStorage storage = OAuthDataStorage();
  List<OAuthData> lstData = await storage.getOAuthData(OAuthData.USERID_TEMP);
  OAuthData data;
  if (0 < lstData.length) {
    data = lstData[0];
  } else {
    data = OAuthData(OAuthData.USERID_TEMP);
  }

  final dicParams = urlParametersToDict(responseBodyAccessToken);

  if (null == dicParams["user_id"]) {
    return null;
  }

  bool bUpdate = false;
  data.userId = dicParams["user_id"]!;
  List<OAuthData> lstDataUser = await storage.getOAuthData(data.userId);
  if (0 < lstDataUser.length) {
    data = lstDataUser[0];
    bUpdate = true;
  }
  data.accessToken = dicParams["oauth_token"];
  data.accessTokenSecret = dicParams["oauth_token_secret"];
  data.accessScreenName = dicParams["screen_name"];
  if (bUpdate) {
    storage.updateOAuthData(data);
  } else {
    storage.insertOAuthData(data);
  }

  return data.userId;
}