อัญมณีนี้สร้างแอปพลิเคชัน Rails ที่สามารถฝังอยู่ในผู้ดูแลระบบ Shopify
บทนำ ข้อกำหนด | การใช้งาน เอกสาร บริจาค | ใบอนุญาต
อัญมณีนี้รวมถึงเครื่องยนต์รางเครื่องกำเนิดไฟฟ้าโมดูลและมิกซินที่ช่วยสร้างแอพพลิเคชั่นรถไฟที่ทำงานกับ Shopify APIs เครื่องยนต์ App Shopify Rails ให้รหัสทั้งหมดที่จำเป็นในการใช้ OAuth กับ Shopify เครื่องกำเนิดแอพ Shopify เริ่มต้นสร้างแอพที่สามารถฝังอยู่ในผู้ดูแลระบบ Shopify และยึดด้วยโทเค็นเซสชัน
ในการเป็นนักพัฒนาแอพ Shopify คุณจะต้องมีบัญชี ProhiFy Partners สำรวจเอกสาร Shopify dev เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างแอพ Shopify
อัญมณีนี้ต้องการให้คุณมีข้อมูลประจำตัวต่อไปนี้:
rails new my_shopify_app
bundle add shopify_app
dotenv-rails
สร้างไฟล์ .env
ในรูทของแอพ Rails ของคุณเพื่อระบุโฮสต์เต็มรูปแบบและ Shopify API Credentials: HOST=http://localhost:3000
SHOPIFY_API_KEY= < Your Shopify API key >
SHOPIFY_API_SECRET= < Your Shopify API secret >
rails generate shopify_app
rails db:migrate
rails server
ติดตั้งแอพโดยไปที่ URL ของเซิร์ฟเวอร์ (เช่น http: // localhost: 3000) และระบุโดเมนย่อยของร้านค้าที่คุณต้องการให้ติดตั้ง
หลังจากติดตั้งแอพแล้วคุณจะเปลี่ยนเส้นทางไปยังแอพที่ฝังตัว
แอพนี้ใช้ OAUTH 2.0 พร้อม Shopify เพื่อตรวจสอบความถูกต้องตามคำขอที่ทำกับ Shopify API โดยค่าเริ่มต้นแอพนี้ได้รับการกำหนดค่าให้ใช้โทเค็นเซสชันเพื่อตรวจสอบความถูกต้องของพ่อค้าเมื่อฝังอยู่ในผู้ดูแลระบบ Shopify
ดู เครื่องกำเนิดไฟฟ้า สำหรับรายการเครื่องกำเนิดไฟฟ้าที่สมบูรณ์ที่มีอยู่สำหรับ Shopify App
คุณสามารถค้นหาเอกสารเกี่ยวกับการใช้อัญมณีแนวคิด mixins การติดตั้งและใน /docs
อื่น ๆ
เร็ว
การแก้ไขปัญหา
การอัพเกรด
แอพ Shopify
การติดตั้งเครื่องยนต์ App Rails Shopify ให้เส้นทางต่อไปนี้ เส้นทางเหล่านี้ได้รับการกำหนดค่าเพื่อช่วยติดตั้งแอปพลิเคชันของคุณในร้านค้าและใช้ OAuth
กริยา | เส้นทาง | การกระทำ |
---|---|---|
GET | /login | เข้าสู่ระบบ |
POST | /login | เข้าสู่ระบบ |
GET | /auth/shopify/callback | Oauth เปลี่ยนเส้นทาง URI |
GET | /logout | ออกจากระบบ |
POST | /webhooks/:type | การโทรกลับ webhook |
เส้นทางเหล่านี้สามารถกำหนดค่าได้ ดูเอกสารประกอบ เครื่องยนต์ ที่มีรายละเอียดเพิ่มเติมเพื่อเรียนรู้วิธีที่คุณสามารถปรับแต่ง URL เข้าสู่ระบบหรือติดตั้งเครื่องยนต์ App Rails Shopify ที่เส้นทางซ้อนกัน
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีที่อัญมณีนี้รับรองความถูกต้องกับ Shopify โปรดดู การตรวจสอบความถูกต้อง
เคล็ดลับ
หากคุณกำลังสร้างแอพที่ฝังอยู่เราขอแนะนำ อย่างยิ่ง ให้ใช้การติดตั้งที่มีการจัดการ Shopify ด้วยการแลกเปลี่ยนโทเค็นแทนการไหลของรหัสการอนุญาตแบบดั้งเดิม
เราได้แนะนำกลยุทธ์การติดตั้งและการอนุญาตใหม่สำหรับ แอพที่ฝังตัว ซึ่งจะช่วยลดการเปลี่ยนเส้นทางที่จำเป็นก่อนหน้านี้ มันแทนที่การติดตั้งที่มีอยู่และรหัสการอนุญาตให้ไหล
สิ่งนี้ทำได้โดยใช้การติดตั้งที่มีการจัดการของ Shopify เพื่อจัดการการติดตั้งแอพอัตโนมัติและการอัปเดตขอบเขตในขณะที่ใช้การแลกเปลี่ยนโทเค็นเพื่อดึงโทเค็นการเข้าถึงสำหรับการเข้าถึง API ที่ผ่านการรับรองความถูกต้อง
บันทึก
ตรวจสอบให้แน่ใจว่าคุณไม่มี use_legacy_install_flow = true
ในไฟล์การกำหนดค่า shopify.app.toml
ของคุณ หาก use_legacy_install_flow
เป็นจริง Shopify จะไม่จัดการกระบวนการติดตั้งสำหรับแอปของคุณ คุณควรลบบรรทัด use_legacy_install_flow
ออกจากไฟล์การกำหนดค่า shopify.app.toml
ของคุณหรือตั้งค่าเป็น false
# config/initializers/shopify_app.rb
ShopifyApp . configure do | config |
#.....
config . embedded_app = true
config . new_embedded_auth_strategy = true
# If your app is configured to use online sessions, you can enable session expiry date check so a new access token
# is fetched automatically when the session expires.
# See expiry date check docs: https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/sessions.md#expiry-date
config . check_session_expiry_date = true
...
end
embedded_app
ของคุณถูกต้อง หากแอปของคุณมีคอนโทรลเลอร์ใด ๆ ซึ่งรวมถึง ShopifyApp::EnsureInstalled
ตอนนี้พวกเขาจะรวมถึงความกังวลของ ShopifyApp::EmbeddedApp
ซึ่งตั้ง layout 'embedded_app'
สำหรับคอนโทรลเลอร์ปัจจุบันโดยค่าเริ่มต้น ในกรณีที่คอนโทรลเลอร์มองหาไฟล์เลย์เอาต์อื่นซึ่งอาจทำให้เกิดพฤติกรรมที่ไม่คาดคิด ดูเอกสารของ EmbeddedApp
ข้อกังวลสำหรับข้อมูลเพิ่มเติมเกี่ยวกับผลกระทบของข้อกังวลนี้และวิธีการปิดใช้งานการเปลี่ยนแปลงเลย์เอาต์หากจำเป็น API ของ Shopify นั้นมีเวอร์ชัน ด้วย Shopify App v1.11.0
GEM Shopify API ที่ให้มาช่วยให้นักพัฒนาสามารถระบุและอัปเดตเวอร์ชัน Shopify API ที่พวกเขาต้องการให้แอปหรือบริการของพวกเขาใช้ Shopify API GEM ยังมีการเตือนถึงแอพพลิเคชั่นรถไฟเกี่ยวกับจุดสิ้นสุดที่เลิกใช้งานฟิลด์ GraphQL และอื่น ๆ
ดูข้อมูลเพิ่มเติมของ Shopify API GEM สำหรับข้อมูลเพิ่มเติม