@Override
  protected Navigation execute(
      UserModel acsessUserModel, UserModel loginUserModel, boolean isLogin, boolean isSmartPhone)
      throws Exception {

    String activityId = asString("activityId");
    ActivityModel activityModel = ActivityService.getActivity(activityId);

    ArrayList<ActivityModel> activityList = new ArrayList<ActivityModel>();
    if (activityModel != null) {
      activityList.add(activityModel);
    }

    // リクエストスコープの設定
    requestScope("activityList", activityList);
    if (activityModel != null) {
      if (activityModel.getTitleString() != null) {
        requestScope(
            "pageTitle", activityModel.getTitleString() + " - " + acsessUserModel.getDisplayName());

      } else if (activityModel.isAttachmentsFlg()
          && activityModel.getAttachmentsDisplayNameString() != null) {
        requestScope(
            "pageTitle",
            activityModel.getAttachmentsDisplayNameString()
                + " - "
                + acsessUserModel.getDisplayName());

      } else {
        requestScope("pageTitle", "Google+での投稿 - " + acsessUserModel.getDisplayName());
      }
    }

    return forward("/responsive/activity_only.jsp");
  }
  @Override
  public Navigation run() throws Exception {

    UserModel userModel = null;

    try {
      userModel = getUser();
    } catch (Exception e) {
      return null;
    }
    ;

    // タスクは成功するまで実行されるため、失敗時は例外をキャッチして再実行をさせない
    try {
      // アクティビティの取得
      String activityId = asString("activityId");

      ActivityModel activityModel = ActivityService.getActivity(activityId);
      if (activityModel == null) return null;

      // 短縮URLの取得
      String shortUrl = getShortUrl(userModel, activityModel);

      // Twitter メッセージの作成
      String msg = getMessage(activityModel, shortUrl);

      // POST
      if (activityModel.getAttachmentsType() != null
          && (activityModel
                  .getAttachmentsType()
                  .getCategory()
                  .equals(Constants.GOOGLE_ACTIVITY_ATTACHMENTS_TYPE_PHOTO)
              || activityModel
                  .getAttachmentsType()
                  .getCategory()
                  .equals(Constants.GOOGLE_ACTIVITY_ATTACHMENTS_TYPE_ALBUM))
          && activityModel
              .getVerb()
              .getCategory()
              .equals(Constants.GOOGLE_ACTIVITY_VERB_TYPE_POST)) {

        // 自分が投稿した写真付きの場合もしくアルバム
        imageUpload(userModel, msg, activityModel.getAttachmentsImageUrlString());

      } else {
        postMessage(userModel, msg);
      }

    } catch (Exception e) {
      logger.severe(e.toString());
    }

    return null;
  }