### Sample Request with GET Query Parameter Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html An example of a GET request including the access_token as a query parameter. ```http GET /yconnect/v2/attribute?access_token=SlAV32hkKG HTTP/1.1 Host: userinfo.yahooapis.jp ``` -------------------------------- ### OpenID Configuration Request Sample Source: https://developer.yahoo.co.jp/yconnect/v2/hybrid/configuration.html Example of how to request the OpenID configuration. This includes the URL and the HTTP GET request. ```http https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration GET /yconnect/v2/.well-known/openid-configuration HTTP/1.1 Host: auth.login.yahoo.co.jp ``` -------------------------------- ### Response Sample: User Identifier (GUID) Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'sub' parameter, representing a user identifier in GUID format. ```json "KVNE5DZLWIY4Y57TRDLURJOOEU" ``` -------------------------------- ### Authorization Endpoint Request Sample Source: https://developer.yahoo.co.jp/yconnect/v2/authorization_code/authorization.html Example GET request to the Authorization endpoint, demonstrating the inclusion of essential parameters. ```http GET /yconnect/v2/authorization? response_type=code &client_id=dj0zaiZpPXNYeG5tRXJKUVVlLSZzPWNvbnN1bWVyc2VjcmV0Jng9ZWU- &redirect_uri=https%3A%2F%2Fexample.org%2Fcb &scope=openid%20profile &state=af0ifjsldkj HTTP/1.1 ``` -------------------------------- ### Authorization Code Flow Example Source: https://developer.yahoo.co.jp/yconnect/v2/java_sdk A Java code example demonstrating how to use the YConnectClient to initiate the Authorization Code flow, including setting parameters and generating the authorization URI. ```java // Application ID and Secret private final static String clientId = "YOUR_APPLICATION_ID"; private final static String clientSecret = "YOUR_SECRET"; // Callback URL (registered when issuing the application ID) private static final String redirectUri = "https://YOUR_CALLBACK_HOST/YConnectServlet/YConnectServlet"; // Specify a random string for verification between request and callback String state = "5Ye65oi744KKT0vjgafjgZnjgojjgIHlhYjovKnjg4M="; // Specify a random string for replay attack prevention String nonce = "SUTljqjjga8uLi7jgrrjg4Plj4vjgaDjgoc="; // Specify a random string for token replacement attack prevention as Code Verifier // https://datatracker.ietf.org/doc/html/rfc7636#section-4.1 String plainCodeChallenge = "E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM"; // Get YConnect instance YConnectClient yconnect = new YConnectClient(); // Initialize parameters String responseType = OAuth2ResponseType.CODE; String display = OIDCDisplay.DEFAULT; String[] prompt = { OIDCPrompt.DEFAULT }; String[] scope = { OIDCScope.OPENID, OIDCScope.PROFILE, OIDCScope.EMAIL, OIDCScope.ADDRESS }; // Set parameters yconnect.init(clientId, redirectUri, state, responseType, display, prompt, scope, nonce, maxAge, plainCodeChallenge); URI uri = yconnect.generateAuthorizationUri(); // Redirect to the Authorization endpoint (display consent screen) response.sendRedirect(uri.toString()); /* * In actual development, generate random strings for state, nonce, and plainCodeChallenge * instead of using fixed strings, and save them to a database or other storage. * state is required when receiving the callback URL from the Authorization endpoint. * nonce is required when decrypting the ID token. * plainCodeChallenge is required when requesting the Token endpoint. * * plainCodeChallenge will be converted to a Code Challenge within the SDK and included in the query parameters. * For details on each parameter value, please refer to the Authorization Endpoint documentation. */ ``` -------------------------------- ### Sample Request with Authorization Header Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html An example of a GET request using the Authorization header with a Bearer Token. ```http GET /yconnect/v2/attribute HTTP/1.1 Host: userinfo.yahooapis.jp Authorization: Bearer SlAV32hkKG ``` -------------------------------- ### Access Token Parameter Example Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Shows how to pass the Access Token as a GET query parameter. Note: This method will be deprecated after September 1, 2026. ```http access_token=SlAV32hkKG ``` -------------------------------- ### Token Response Example Source: https://developer.yahoo.co.jp/yconnect/v2/hybrid/token.html This is an example of a successful response when a token is acquired. ```APIDOC ## Token Response Example ### Description This is an example of a successful response when a token is acquired. ### Response #### Success Response (200) - **access_token** (string) - The acquired access token. - **token_type** (string) - The type of the token, typically 'Bearer'. - **expires_in** (integer) - The time in seconds until the token expires. #### Response Example ```json { "access_token": "SlAV32hkKG", "token_type": "Bearer", "expires_in": 3600 } ``` ``` -------------------------------- ### Authorization Header Example Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Demonstrates the format for the Authorization header, using a Bearer Token. ```http Authorization: Bearer SlAV32hkKG ``` -------------------------------- ### Authorization Endpoint Request Sample Source: https://developer.yahoo.co.jp/yconnect/v2/implicit/authorization.html Example of a GET request to the Authorization endpoint, demonstrating the inclusion of various parameters for authentication and authorization. ```http GET /yconnect/v2/authorization? response_type=id_token%20token &client_id=dj0zaiZpPXNYeG5tRXJKUVVlLSZzPWNvbnN1bWVyc2VjcmV0Jng9ZWU- &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb &scope=openid%20profile &state=af0ifjsldkj &nonce=n-0S6_WzA2Mj HTTP/1.1 ``` -------------------------------- ### LoginManager Setup Source: https://developer.yahoo.co.jp/yconnect/v2/client_app/ios Initialize the LoginManager with your Client ID and custom URI scheme. This should be called at the application launch. ```APIDOC ## LoginManager Setup ### Description Initialize the LoginManager with your Client ID and custom URI scheme. This should be called at the application launch. ### Method `LoginManager.setup(clientId: String, redirectUri: URL)` ### Parameters - **clientId** (String) - Your pre-issued Client ID. - **redirectUri** (URL) - The custom URI scheme for your application, typically in the format `yj-xxxxx://`. ### Request Example ```swift import YJLoginSDK let clientId = "dj00zaiZpPXNYeG5tRXJVVlLzPuWNMvbnN1bWVyc2VjcmV0JnXXXXX-" let redirectUri = URL(string: "yj-xxxxx:/")! func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { LoginManager.shared.setup(clientId: clientId, redirectUri: redirectUri) return true } ``` ``` -------------------------------- ### Response Sample: Full Name Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'name' parameter, returning the user's full name. ```json "矢風太郎" ``` -------------------------------- ### Authorization Endpoint GET Request Sample Source: https://developer.yahoo.co.jp/yconnect/v2/hybrid/authorization.html A sample GET request to the Authorization endpoint, demonstrating the inclusion of various parameters like response_type, client_id, redirect_uri, scope, nonce, and state. ```http GET /yconnect/v2/authorization? response_type=code%20id_token &client_id=dj0zaiZpPXNYeG5tRXJKUVVlLSZzPWNvbnN1bWVyc2VjcmV0Jng9ZWU- &redirect_uri=https%3A%2F%2F example.org%2Fcb &scope=openid%20profile &nonce=n-0S6_WzA2Mj &state=af0ifjsldkj HTTP/1.1 Host: auth.login.yahoo.co.jp ``` -------------------------------- ### Callback Parameter Example Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Illustrates the use of the 'callback' parameter for JSONP responses. ```http callback=success ``` -------------------------------- ### Response Sample: Locale Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'locale' parameter, which is fixed to 'ja-JP'. ```json "ja-JP" ``` -------------------------------- ### LoginManager Setup Source: https://developer.yahoo.co.jp/yconnect/v2/client_app/android Initialize the LoginManager with your Client ID and Redirect URI. This must be called before any other LoginManager methods. It is recommended to call this at application startup. ```APIDOC ## LoginManager Setup ### Description Initialize the LoginManager with your Client ID and Redirect URI. This must be called before any other LoginManager methods. It is recommended to call this at application startup. ### Code Example ```kotlin val clientId = "dj00zaiZpPXNYeG5tRXJVVlLzPuWNMvbnN1bWVyc2VjcmV0JnXXXXX-" val redirectUri = "android-app://$packageName/yj-example//" LoginManager.setup(clientId, redirectUri) ``` ``` -------------------------------- ### Response Sample: First Name Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'given_name' parameter, returning only the user's first name. ```json "太郎" ``` -------------------------------- ### Error Response Example Source: https://developer.yahoo.co.jp/yconnect/v2/hybrid/token.html This is an example of an error response when token acquisition fails. ```APIDOC ## Error Response Example ### Description This is an example of an error response when token acquisition fails. ### Response #### Error Response (400) - **error** (string) - The error code. - **error_description** (string) - A description of the error. - **error_code** (integer) - A code for error identification. #### Response Example ```json { "error": "invalid_request", "error_description": "Unsupported response_type value", "error_code": 1000 } ``` ### Error Details For more details on errors, please refer to: https://tools.ietf.org/html/rfc6749#page-45 ``` -------------------------------- ### ID Token Header Example Source: https://developer.yahoo.co.jp/yconnect/v2/id_token.html This is an example of the Header section of an ID Token, specifying the token type, signing algorithm, and key ID. ```json { "typ": "JWT", "alg": "RS256", "kid": "0cc175b9c0f1b6a831c399e269772661" } ``` -------------------------------- ### OpenID Configuration Response Example Source: https://developer.yahoo.co.jp/yconnect/v2/authorization_code/configuration.html This is a sample JSON response from the OpenID Configuration endpoint, detailing supported features and endpoints. ```json HTTP/1.1 200 OK Content-Type: application/json Date: Wed, 11 May 2016 07:54:16 GMT Expires: Wed, 11 May 2016 08:54:16 GMT Cache-Control: public, max-age=3600 { "issuer": "https://auth.login.yahoo.co.jp/yconnect/v2/", "authorization_endpoint": "https://auth.login.yahoo.co.jp/yconnect/v2/authorization", "token_endpoint": "https://auth.login.yahoo.co.jp/yconnect/v2/token", "userinfo_endpoint": "https://userinfo.yahooapis.jp/yconnect/v2/attribute", "jwks_uri": "https://auth.login.yahoo.co.jp/yconnect/v2/jwks", "response_types_supported": [ "code", "token", "id_token", "code token", "code id_token", "token id_token", "code token id_token" ], "subject_types_supported": [ "public", "pairwise" ], "id_token_signing_alg_values_supported": [ "RS256" ], "scopes_supported": [ "openid", "email", "profile", "address" ], "token_endpoint_auth_methods_supported": [ "client_secret_post", "client_secret_basic" ], "claims_supported": [ "sub", "name", "given_name", "family_name", "email", "email_verified", "gender", "birthdate", "zoneinfo", "locale", "address", "iss", "aud", "exp", "iat", "nickname", "picture" ], "display_values_supported": [ "page", "popup", "touch" ], "service_documentation": "https://developer.yahoo.co.jp/yconnect/", "claims_locales_supported": [ "ja-JP" ], "ui_locales_supported": [ "ja-JP" ], "op_policy_uri": "https://developer.yahoo.co.jp/yconnect/v2/guideline.html", "op_tos_uri": "https://developer.yahoo.co.jp/yconnect/v2/guideline.html" } ``` -------------------------------- ### Response Sample: Address - Formatted Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'address.formatted' parameter, returning a combined string of prefecture and city/municipality. ```json "東京都千代田区" ``` -------------------------------- ### Response Sample: Time Zone Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'zoneinfo' parameter, which is fixed to 'Asia/Tokyo'. ```json "Asia/Tokyo" ``` -------------------------------- ### Response Sample: User Identifier (PPID) Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'sub' parameter, representing a user identifier in PPID format. ```json "xHOs7gRnw2kq6Nd2nMDYg0aAwxLbZmJky4OMrA8v4-7EYZZS00" ``` -------------------------------- ### Response Sample: Last Name Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'family_name' parameter, returning only the user's last name. ```json "矢風" ``` -------------------------------- ### Response Sample: Address - Region Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'address.region' parameter, returning the user's registered prefecture. ```json "東京都" ``` -------------------------------- ### Response Sample: First Name (Kana) Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'given_name#ja-Kana-JP' parameter, returning the phonetic reading (Kana) of the user's first name. ```json "タロウ" ``` -------------------------------- ### Response Sample: Address - Postal Code Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'address.postal_code' parameter, returning the user's registered postal code. ```json "1028282" ``` -------------------------------- ### Response Sample: Email Address Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'email' parameter, returning the user's primary email address. This is not a unique identifier. ```json "yconnect@example.com" ``` -------------------------------- ### Initialize LoginManager with Client ID and Redirect URI Source: https://developer.yahoo.co.jp/yconnect/v2/client_app/android Call LoginManager.setup() with your Client ID and prepared redirect URI before executing other SDK methods. It's recommended to do this at app startup. ```kotlin val clientId = "dj00zaiZpPXNYeG5tRXJVVlLzPuWNMvbnN1bWVyc2VjcmV0JnXXXXX-" val redirectUri = "android-app://$packageName/yj-example//" LoginManager.setup(clientId, redirectUri) ``` -------------------------------- ### JWKS Endpoint Request Sample Source: https://developer.yahoo.co.jp/yconnect/v2/authorization_code/jwks.html Example of a GET request to the JWKS endpoint. ```http https://auth.login.yahoo.co.jp/yconnect/v2/jwks GET /yconnect/v2/jwks HTTP/1.1 Host: auth.login.yahoo.co.jp ``` -------------------------------- ### Configure Login Button with Scopes and Parameters Source: https://developer.yahoo.co.jp/yconnect/v2/client_app/android Set up a LoginButton by assigning scopes, nonce, codeChallenge, and optionalParameters. Assign 'this' as the listener if the activity implements LoginListener. ```kotlin // ログイン実行用のボタンを設定 findViewById(R.id.login_button_white).also { it.scopes = scopes it.nonce = nonce it.codeChallenge = codeChallenge it.optionalParameters = optionalParameters it.listener = this } ``` -------------------------------- ### ID Token Payload Example Source: https://developer.yahoo.co.jp/yconnect/v2/id_token.html This is an example of the Payload section of an ID Token, containing user identification, issuer, audience, and expiration details. ```json { "iss": "https://auth.login.yahoo.co.jp/yconnect/v2", "sub": "KVNE5DZLWIY4Y57TRDLURJOOEU", "aud": [ "dj0zaiZpPWxCUTczV01KazczNSZzPWNvbnN1bWVyc2VjcmV0Jng9NDc-" ], "exp": 1453618036, "iat": 1453272436, "auth_time": 1453271436, "nonce": "n-0S6_WzA2Mj", "amr": [ "pwd" ], "at_hash": "SjjfaAWSdWEvSDfASCmonm", "c_hash": "LDktKdoQak3Pk0cnXxCltA" } ``` -------------------------------- ### Setup LoginManager in AppDelegate Source: https://developer.yahoo.co.jp/yconnect/v2/client_app/ios Set up the LoginManager with your Client ID and custom URI scheme at the application launch. This is a required step before using other SDK features. ```swift let clientId = "dj00zaiZpPXNYeG5tRXJVVlLzPuWNMvbnN1bWVyc2VjcmV0JnXXXXX-" let redirectUri = URL(string: "yj-xxxxx:/")! func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { LoginManager.shared.setup(clientId: clientId, redirectUri: redirectUri) return true } ``` -------------------------------- ### Response Sample: Profile Picture URL Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'picture' parameter, returning the URL for the user's profile image. Note: Currently returns a fixed value. ```json "https://dummy.img.yahoo.co.jp/example.png" ``` -------------------------------- ### Response Sample: Display Name Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'nickname' parameter, returning the user's chosen display name. Note: Currently returns a fixed value. ```json "やふうたろう" ``` -------------------------------- ### URL Query Method (GET requests only) Source: https://developer.yahoo.co.jp/yconnect/v2/api_access.html This method is suitable for scenarios where including the Access Token in the HTTP header is difficult, such as when client applications operate within a web browser (JavaScript). The Access Token is appended to the URL query parameters for GET requests. Note: This method will be unavailable after September 1, 2026. ```APIDOC ## GET /path/to/webEndPoint ### Description Sends a GET request with the Access Token included in the URL query parameters. ### Method GET ### Endpoint /path/to/webEndPoint?access_token=[access_token]¶m=var ### Query Parameters - **access_token** (string) - Required - The Access Token for authentication. - **param** (string) - Required - Example parameter. ### Request Example ```http GET /yconnect/v2/attribute?access_token=SlAV32hkKG HTTP/1.1 Host: userinfo.yahooapis.jp ``` ``` -------------------------------- ### Response Sample: Address - Locality Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'address.locality' parameter, returning the user's registered city/municipality. ```json "千代田区" ``` -------------------------------- ### Response Sample: Address - Country Code Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'address.country' parameter, returning the 2-letter country code. ```json "JP" ``` -------------------------------- ### Response Sample: Birth Year Source: https://developer.yahoo.co.jp/yconnect/v2/userinfo.html Example of the 'birthdate' parameter, returning only the year of birth as a 4-digit number. ```json "1986" ``` -------------------------------- ### Generate Login Button with JavaScript SDK Source: https://developer.yahoo.co.jp/yconnect/v2/javascript_sdk Use this script to initialize the login button and configure authorization, autofill, and callback functions. Ensure to replace placeholder values for clientId and redirectUri. The SDK supports Implicit and Authorization Code flows. ```javascript ``` -------------------------------- ### Response Sample for New Access Token Acquisition Source: https://developer.yahoo.co.jp/yconnect/v2/base/token.html Example JSON response when a new access token is successfully acquired. Includes access_token, token_type, refresh_token, expires_in, and id_token. ```json HTTP/1.1 200 OK Content-Type: application/json Cache-Control: no-store Pragma: no-cache { "access_token": "SlAV32hkKG", "token_type": "Bearer", "refresh_token": "8xLOxBtZp8", "expires_in": 3600, "id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzcyI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZfV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5NzAKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6qJp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJNqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7TpdQyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoSK5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg" } ``` -------------------------------- ### OpenID Configuration Endpoint Request Source: https://developer.yahoo.co.jp/yconnect/v2/authorization_code/configuration.html Use this URL to retrieve the OpenID configuration. Only the GET method is supported. ```http URL: https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration サポートするHTTPメソッド: GET ``` ```http https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration GET /yconnect/v2/.well-known/openid-configuration HTTP/1.1 Host: auth.login.yahoo.co.jp ``` -------------------------------- ### Initialize YConnectClient Class Source: https://developer.yahoo.co.jp/yconnect/v2/php_sdk Constructor for the YConnectClient class, which requires a ClientCredential object. ```php public YConnectClient::__construct(ClientCredential $clientCred) ``` -------------------------------- ### Initialize ClientCredential and YConnectClient Source: https://developer.yahoo.co.jp/yconnect/v2/php_sdk This snippet demonstrates how to initialize the ClientCredential and YConnectClient classes, which are essential for interacting with the Yahoo! ID連携 API. ```APIDOC ## Initialize ClientCredential and YConnectClient ### Description Initializes the necessary client credentials and the main client object for interacting with the Yahoo! ID連携 service. ### Usage ```php use YConnect\Credential\ClientCredential; use YConnect\YConnectClient; // Application ID and secret obtained from Yahoo! Developer Network $client_id = "YOUR_APPLICATION_ID"; $client_secret = "YOUR_SECRET"; // Create a ClientCredential instance $cred = new ClientCredential($client_id, $client_secret); // Create a YConnectClient instance using the credentials $client = new YConnectClient($cred); ``` ``` -------------------------------- ### OpenID Configuration Response Sample Source: https://developer.yahoo.co.jp/yconnect/v2/hybrid/configuration.html A sample JSON response from the OpenID Configuration endpoint. It details supported endpoints, response types, scopes, claims, and other configuration parameters. ```json HTTP/1.1 200 OK Content-Type: application/json Date: Wed, 11 May 2016 07:54:16 GMT Expires: Wed, 11 May 2016 08:54:16 GMT Cache-Control: public, max-age=3600 { "issuer": "https://auth.login.yahoo.co.jp/yconnect/v2/", "authorization_endpoint": "https://auth.login.yahoo.co.jp/yconnect/v2/authorization", "token_endpoint": "https://auth.login.yahoo.co.jp/yconnect/v2/token", "userinfo_endpoint": "https://userinfo.yahooapis.jp/yconnect/v2/attribute", "jwks_uri": "https://auth.login.yahoo.co.jp/yconnect/v2/jwks", "response_types_supported": [ "code", "token", "id_token", "code token", "code id_token", "token id_token", "code token id_token" ], "subject_types_supported": [ "public" ], "id_token_signing_alg_values_supported": [ "RS256" ], "scopes_supported": [ "openid", "email", "profile", "address" ], "token_endpoint_auth_methods_supported": [ "client_secret_post", "client_secret_basic" ], "claims_supported": [ "sub", "name", "given_name", "family_name", "email", "email_verified", "gender", "birthdate", "zoneinfo", "locale", "address", "iss", "aud", "exp", "iat", "nickname", "picture" ], "display_values_supported": [ "page", "popup", "touch" ], "service_documentation": "https://developer.yahoo.co.jp/yconnect/", "claims_locales_supported": [ "ja-JP" ], "ui_locales_supported": [ "ja-JP" ], "op_policy_uri": "https://developer.yahoo.co.jp/yconnect/v2/guideline.html", "op_tos_uri": "https://developer.yahoo.co.jp/yconnect/v2/guideline.html" } ```