私はshopify apiトークンを生成するためにshopify documentationに従っています。ここでShopifyアプリがshopify APIトークンを生成しています。「このリクエストはShopifyのものではありません!
は私が
http://localhost/shopify/shopify-generating-api-token-guide/generate_token.php?code=86f5027cxxxxxxxxx9c5d&hmac=fcf1e1bexxxxxxxxa97b0f79ec1ec7b473e0bc36bf71&shop=ecommerce-52.myshopify.com&signature=12a6ab63c04d9844ff6xxxxxx0×tamp=1458991225
にリダイレクトしています。しかし、それは言うのインストール]をクリックした後、それは、インストールアプリページに私をリダイレクトし
install.phpを<?php
// Set variables for our request
$shop = "ecommerce-52";
$api_key = "6bdad749dxxxx24c462c7d2af";
$scopes = "read_orders,write_products";
$redirect_uri = "http://localhost/shopify/shopify-generating-api-token-guide/generate_token.php";
//$redirect_uri = "https://ecommerce-52.myshopify.com";
// Build install/approval URL to redirect to
$install_url = "https://" . $shop . ".myshopify.com/admin/oauth/authorize?client_id=" . $api_key . "&scope=" . $scopes . "&redirect_uri=" . urlencode($redirect_uri);
//print_r($install_url);
// Redirect
header("Location: " . $install_url);
die();
ための私のコードです:
This request is NOT from Shopify!
ここはgenerate_token.phpのコードです
<?php
// Get our helper functions
require_once("inc/functions.php");
// Set variables for our request
$shop = "ecommerce-52";
$api_key = "6bdad749xxxxxxx24c462c7d2af";
$shared_secret = "c679xxxxx3ac11474599";
$code = $_GET["code"];
$timestamp = $_GET["timestamp"];
$signature = $_GET["signature"];
// Compile signature data
$signature_data = $shared_secret . "code=" . $code . "shop=". $shop . ".myshopify.comtimestamp=" . $timestamp;
// Use signature data to check that the response is from Shopify or not
if (md5($signature_data) === $signature) {
// Set variables for our request
$query = array(
"Content-type" => "application/json", // Tell Shopify that we're expecting a response in JSON format
"client_id" => $api_key, // Your API key
"client_secret" => $shared_secret, // Your app credentials (secret key)
"code" => $code // Grab the access key from the URL
);
// Call our Shopify function
$shopify_response = shopify_call(NULL, $shop, "/admin/oauth/access_token", $query, 'POST');
// Convert response into a nice and simple array
$shopify_response = json_decode($shopify_response['response'], TRUE);
// Store the response
$token = $shopify_response['access_token'];
// Show token (DO NOT DO THIS IN YOUR PRODUCTION ENVIRONMENT)
echo $token;
} else {
// Someone is trying to be shady!
die('This request is NOT from Shopify!');
}
私はそれは私が間違ってやっているということですいただきまし把握することはできません。どんな助けもありがとう。
アップデート:私もHerokuの上でそれを展開しようとしました
(これはデフォルトでHTTPSです)、まだ運。 $signature
と$md5($signature_data)
の値が同じでない理由を理解できません。
あなたはgenerate_token.phpからMD5の値($ signature_data)と$署名 –
を提供することはできますか? –
はい、あるものがnullのような単純なものか、あるいは異なるフォーマットのものがあるかどうか疑問に思っていました。ここで –