/**
  * {@link Mars_OAuthProvider} を実装したクラスのオブジェクトインスタンスを生成します。
  * 
  * @param string $provider 接続先の OAuth プロバイダ。Mars_OAuthProvider::PROVIDER_* 定数を指定。
  * @return Mars_OAuthProvider Mars_OAuthProvider を実装したクラスのオブジェクトインスタンスを返します。
  * @throws Mars_UnsupportedException サポートされていない OpenID プロバイダが指定された場合に発生。
  * @author Naomichi Yamakita <*****@*****.**>
  */
 public static function create($provider)
 {
     $instance = NULL;
     switch ($provider) {
         case self::PROVIDER_TWITTER:
             $instance = Mars_TwitterOAuthProvider::getInstance();
             break;
         case self::PROVIDER_FACEBOOK:
             $instance = Mars_FacebookOAuthProvider::getInstance();
             break;
         case self::PROVIDER_MIXI_2LEGGED:
             $instance = Mars_Mixi2LeggedOAuthProvider::getInstance();
             break;
         case self::PROVIDER_MIXI_3LEGGED:
             $instance = Mars_Mixi3LeggedOAuthProvider::getInstance();
             break;
         default:
             $message = sprintf('The specified provider is not supported. [%s]', $provider);
             throw new Mars_UnsupportedException($message);
     }
     return $instance;
 }
 /**
  * userId のプロフィール URI を取得します。
  * 
  * @param string $userId 対象とするユーザ ID。urn:guid 、または guid 形式で指定可能。
  * @return string userId のプロフィール URI を返します。
  * @author Naomichi Yamakita <*****@*****.**>
  */
 public static function getProfileURI($userId)
 {
     return self::BASE_URI . 'show_friend.pl?id=' . Mars_Mixi2LeggedOAuthProvider::getId($userId);
 }