اذهب إلى المحتوى
  • 0

لا اقوم بتلقي requist من App Script For Google Sheet File

Samer Alashqar

السؤال

السلام عليكم..

لدي هذا الكود في App Script

function onEdit(e) {
  //console.log("Old value: " + e.oldValue);
  //console.log("New value: " + e.newValue);

   const url = "http://localhost:8000/edit"; // Replace with your localhost URL
  const options = {
    "method": "POST",
    "muteHttpExceptions": true
  };
  UrlFetchApp.fetch(url, options);
  
}

الذي يقوم بعمل requist الى السيرفر الخاص بي:
 

app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});



app.post("/edit", async (req,res) => {
  console.log('Incoming request:', req);
  console.log("hi")
  res.send('Hello World!');
} )
 

لكنني لا اتلقى اي طلب على ال endpoint خاصتي.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الكود سليم، لكن كمحاولة استخدم الكود التالي:

function onEdit(e) {
  const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي
  const options = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب
    muteHttpExceptions: true,
  };
  
  try {
    UrlFetchApp.fetch(url, options);
  } catch (error) {
    console.error("حدث خطأ أثناء إرسال الطلب:", error);
  }
}

قمت بإضافة خاصية "headers" لتعيين نوع المحتوى إلى "application/json"، كما قمت بتحويل بيانات التعديل (e) إلى سلسلة JSON باستخدام JSON.stringify() وإرسالها كجزء من الجسم (payload) للطلب.

تم أيضًا إضافة كتلة try-catch للتعامل مع الأخطاء المحتملة أثناء إرسال الطلب، وستتم طباعة أي خطأ إلى سجل الخطأ ويمكنك مراجعته لمعرفة تفاصيل الخطأ المحدث.

وعليك باستبدال عنوان URL الصحيح لخادمك في السطر const url = "http://localhost:8000/edit"; بالعنوان الصحيح الذي يستخدمه السيرفر لديك.

وتأكد من أن السيرفر يستجيب للطلبات POST وأن لديك الإعدادات الصحيحة للوصول المشترك (CORS) للسماح للطلبات الواردة من نطاق Google Apps Script.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 6 دقائق مضت قال Mustafa Suleiman:

الكود سليم، لكن كمحاولة استخدم الكود التالي:

function onEdit(e) {
  const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي
  const options = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب
    muteHttpExceptions: true,
  };
  
  try {
    UrlFetchApp.fetch(url, options);
  } catch (error) {
    console.error("حدث خطأ أثناء إرسال الطلب:", error);
  }
}

قمت بإضافة خاصية "headers" لتعيين نوع المحتوى إلى "application/json"، كما قمت بتحويل بيانات التعديل (e) إلى سلسلة JSON باستخدام JSON.stringify() وإرسالها كجزء من الجسم (payload) للطلب.

تم أيضًا إضافة كتلة try-catch للتعامل مع الأخطاء المحتملة أثناء إرسال الطلب، وستتم طباعة أي خطأ إلى سجل الخطأ ويمكنك مراجعته لمعرفة تفاصيل الخطأ المحدث.

وعليك باستبدال عنوان URL الصحيح لخادمك في السطر const url = "http://localhost:8000/edit"; بالعنوان الصحيح الذي يستخدمه السيرفر لديك.

وتأكد من أن السيرفر يستجيب للطلبات POST وأن لديك الإعدادات الصحيحة للوصول المشترك (CORS) للسماح للطلبات الواردة من نطاق Google Apps Script.

كل شي لدي صحيح لكن مازلت لا اتلقى اي استجابة من ال APP script:
full code server side: 
 

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const { ObjectId } = require("mongodb");
const { urlencoded } = require("express");
const { google } = require("googleapis");
require("dotenv").config();
const User = require("./Models/user");



app.use(urlencoded({ limit: "50mb", extended: true }));
app.use(express.json({ limit: "50mb", extended: true }));

app.use((req, res, next) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});



app.post("/edit", async (req,res) => {
  console.log('Incoming request:', req);
  console.log("hi")
} )
 


//db connection
mongoose
  .connect(process.env.MONGODB_URL, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log("Successfully connected to the database");
  })
  .catch((error) => {
    console.log("Could not connect to the database", error);
    process.exit();
  });


require("./Router/userRoute")(app);

const PORT = process.env.PORT || 8000;
app.listen(PORT, () => {
  console.log(`Listening on port ${PORT}`);
});


App script: 

function onEdit(e) {
  const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي
  const options = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب
    muteHttpExceptions: true,
  };
  
  try {
    UrlFetchApp.fetch(url, options);
  } catch (error) {
    console.error("حدث خطأ أثناء إرسال الطلب:", error);
  }
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 49 دقائق مضت قال Mustafa Suleiman:

الكود سليم، لكن كمحاولة استخدم الكود التالي:

function onEdit(e) {
  const url = "http://localhost:8000/edit"; // استبدله بعنوان URL الصحيح لخادمك الشخصي
  const options = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    payload: JSON.stringify(e), // إرسال بيانات التعديل كجزء من الجسم (payload) للطلب
    muteHttpExceptions: true,
  };
  
  try {
    UrlFetchApp.fetch(url, options);
  } catch (error) {
    console.error("حدث خطأ أثناء إرسال الطلب:", error);
  }
}

قمت بإضافة خاصية "headers" لتعيين نوع المحتوى إلى "application/json"، كما قمت بتحويل بيانات التعديل (e) إلى سلسلة JSON باستخدام JSON.stringify() وإرسالها كجزء من الجسم (payload) للطلب.

تم أيضًا إضافة كتلة try-catch للتعامل مع الأخطاء المحتملة أثناء إرسال الطلب، وستتم طباعة أي خطأ إلى سجل الخطأ ويمكنك مراجعته لمعرفة تفاصيل الخطأ المحدث.

وعليك باستبدال عنوان URL الصحيح لخادمك في السطر const url = "http://localhost:8000/edit"; بالعنوان الصحيح الذي يستخدمه السيرفر لديك.

وتأكد من أن السيرفر يستجيب للطلبات POST وأن لديك الإعدادات الصحيحة للوصول المشترك (CORS) للسماح للطلبات الواردة من نطاق Google Apps Script.

بعد عمل Run ل App Script يظهر هذا الخطاْ 
.thumb.png.99812a90e201b28b7cec3f2ed375475a.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...