مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

rezanemati

عضویت از 1400/02/21

متصل ربات تلگرام در اندروید

  • یکشنبه 18 مهر 1400
  • 10:38
تشکر میکنم

آقای سلام چطورین خوبین؟ یه مشکلی هست اینکه من از یه لایببری استفاده میکنم توی برنامه نویسی اندروید که وصل میشیم به ربات تلگرام و... میخوام فقط هر دستور زدم توی ربات اجرا بشه و آماده دستور بعد باش و باز یه یک دستور دیگه و... الان کامل کار میکنه ولی خوب یه مشکلی هست یه چیزی میفرستم فقط یه بار اجرا میشه توی حلقه هم گزاشتم offset رو هم مشخص کردم باز بی نهایت اجرا میشه و... باز درست نشد لطفا راهنمایی کنین ممنون شما دوستان عزیزدل

چطوری میتونم یه دستور خواست بزنم و جواب اون دستورمو بگیرم اینم به مشکل خوردم مثال : گفتم سلام بگه علیک سلام یا گفتم کجایی بگه مشهد و...
 

لایببری :

https://github.com/androidmads/TelegramBotSample

این لایببری هم همه چی درسته و خودش هم این قابلیت offset رو داره اگه بتونین روی این اوکیش بکنیم خیلی بهتره :

https://github.com/pengrad/java-telegram-bot-api

پاسخ های این پرسش

تعداد پاسخ ها : 11 پاسخ
کاربر سایت

محمد شعبانی (مدرس)

عضویت از 1399/07/27

  • یکشنبه 18 مهر 1400
  • 12:54

سلام دوست من

با استفاده از دستور break حلقه رو بکشنین

موفق باشین :)

کاربر سایت

rezanemati

عضویت از 1400/02/21

  • یکشنبه 18 مهر 1400
  • 13:20

مرسی ممنون از باسخگویی شما خیلی متشکرم فقط ببخشید چطوری میتونم یه دستور خواست بزنم و جواب اون دستورمو بگیرم اینم به مشکل خوردم مثال : گفتم سلام بگه علیک سلام یا گفتم کجایی بگه مشهد و...

کاربر سایت

محمد شعبانی (مدرس)

عضویت از 1399/07/27

  • یکشنبه 18 مهر 1400
  • 13:35

یک تابع بنویسین و متن هایی که احتمالا قرار است کاربران ارسال کنه رو داخل یک آرایه ذخیره کنین

داخل تابع با دستور if چک کنین که اگر مقدار ورودی تابع برابر با "سلام" بود بگه سلام

من در پایتون این رو پیاده می کنم:

def checkFunction (word):
	if word === "Hello":
		print "Hello"
	elif word === "How are you?"
		print "Thanks!"

به این ترتیب پیاده کنین

موفق باشین :)

کاربر سایت

rezanemati

عضویت از 1400/02/21

  • یکشنبه 18 مهر 1400
  • 14:13
من میخوام باسخ ارسال کنم خطا کد امنیتی میده
کاربر سایت

rezanemati

عضویت از 1400/02/21

  • یکشنبه 18 مهر 1400
  • 15:02

همه اینارو میدونم مشکل اصلی اینکه چطوری متن کاربر رو بگیرم از تو خود کتاب خونه و بهش دسترسی بیدا بکنم مثال زیر رو ببخشید ببینین : یه متد SendMessage داره و داخلش Message داره که String میگیره خوب برای ارسال یک بیغام به دو تا چیز نیاز داریم chatid , message دقت کنین این کد خود کتاب خونست که گفتم نشون بدم الان میخوام مثلا به مقدار message که متن خود ربات هست دسترسی بگیرم و به متن خودم مثلا زدم رضا متن Message بشه سلام رضا و... کدای کتاب خونه رو که نمیشه ویرایش کرد ReadOnly هست فقط میشه خوند

 

 

 

public void sendMessage(String chatId, String message, final TelegramCallback telegramCallback) {

   String sendMessageFunction = "/sendmessage?chat_id=" + chatId + "&text=" + message;

   TelegramClient.getOkHttpClientCall(botToken,

           sendMessageFunction, new Callback() {

               @Override

               public void onResponse(@NonNull final Call call,

                                      @NonNull final Response response) throws IOException {

                   new Handler(Looper.getMainLooper()).post(new Runnable() {

                       @Override

                       public void run() {

                           try {

                               telegramCallback.onResponse(call, new Gson().fromJson(response.body().string(), Message.class));

                           } catch (IOException e) {

                               e.printStackTrace();

                           }

                       }

                   });

               }

 

               @Override

               public void onFailure(@NonNull final Call call, @NonNull final IOException e) {

                   new Handler(Looper.getMainLooper()).post(new Runnable() {

                       @Override

                       public void run() {

                           telegramCallback.onFailure(call, e);

                       }

                   });

               }

           });

}

 

 

 

این کدیه که خود لایببری به ما میده : متند SendMessage یک چت ایدی میگیره یه تکست که ربات ارسال میکنه من میخوام برای این شرط تعیین کنم اگه اگر رضا زدم متد SendMessage بگه علیک سلام و... من واقعا ممنون میشم کمکم کنین یه مثال اینطوری برای این کتاب خونه بزنین و هزینش هم میدم ممنون...

 

 

 

 

 

telegram.sendMessage("220913047", textsms, new TelegramCallback<Message>() {

   @Override

   public void onResponse(Call call, Message response) {

       Log.v("response.body()", response.isOk() + "");

   }

 

   @Override

   public void onFailure(Call call, Exception e) {

 

   }

});

 

 

 

این لایببری خودش باز همه چیو داره فقط نتونستم کانفیگش کنم :https://github.com/pengrad/java-telegram-bot-api

کاربر سایت

محمد شعبانی (مدرس)

عضویت از 1399/07/27

  • یکشنبه 18 مهر 1400
  • 16:33

برای نوشتن کد از بلوک کد استفاده کنین

کدهاتون بهم ریخته و قابل مطالعه نیست

 

کاربر سایت

rezanemati

عضویت از 1400/02/21

  • یکشنبه 18 مهر 1400
  • 17:01

همه اینارو میدونم مشکل اصلی اینکه چطوری متن کاربر رو بگیرم از تو خود کتاب خونه و بهش دسترسی بیدا بکنم مثال زیر رو ببخشید ببینین : یه متد SendMessage داره و داخلش Message داره که String میگیره خوب برای ارسال یک بیغام به دو تا چیز نیاز داریم chatid , message دقت کنین این کد خود کتاب خونست که گفتم نشون بدم الان میخوام مثلا به مقدار message که متن خود ربات هست دسترسی بگیرم و به متن خودم مثلا زدم رضا متن Message بشه سلام رضا و... کدای کتاب خونه رو که نمیشه ویرایش کرد ReadOnly هست فقط میشه خوند

 

 

 

public void sendMessage(String chatId, String message, final TelegramCallback telegramCallback) {
   String sendMessageFunction = "/sendmessage?chat_id=" + chatId + "&text=" + message;
   TelegramClient.getOkHttpClientCall(botToken,
           sendMessageFunction, new Callback() {
               @Override
               public void onResponse(@NonNull final Call call,
                                      @NonNull final Response response) throws IOException {
                   new Handler(Looper.getMainLooper()).post(new Runnable() {
                       @Override
                       public void run() {
                           try {
                               telegramCallback.onResponse(call, new Gson().fromJson(response.body().string(), Message.class));
                           } catch (IOException e) {
                               e.printStackTrace();
                           }
                       }
                   });
               }

               @Override
               public void onFailure(@NonNull final Call call, @NonNull final IOException e) {
                   new Handler(Looper.getMainLooper()).post(new Runnable() {
                       @Override
                       public void run() {
                           telegramCallback.onFailure(call, e);
                       }
                   });
               }
           });
}

 

 

 

این کدیه که خود لایببری به ما میده : متند SendMessage یک چت ایدی میگیره یه تکست که ربات ارسال میکنه من میخوام برای این شرط تعیین کنم اگه اگر رضا زدم متد SendMessage بگه علیک سلام و... من واقعا ممنون میشم کمکم کنین یه مثال اینطوری برای این کتاب خونه بزنین و هزینش هم میدم ممنون...

 

 

 

 

 

telegram.sendMessage("220913047", textsms, new TelegramCallback<Message>() {
   @Override
   public void onResponse(Call call, Message response) {
       Log.v("response.body()", response.isOk() + "");
   }

   @Override
   public void onFailure(Call call, Exception e) {

   }
});

 

این لایببری خودش باز همه چیو داره فقط نتونستم کانفیگش کنم :https://github.com/pengrad/java-telegram-bot-api

کاربر سایت

rezanemati

عضویت از 1400/02/21

  • یکشنبه 18 مهر 1400
  • 19:41

آقا جواب منو میشه بدین هزینشو میدم 

کاربر سایت

محمد شعبانی (مدرس)

عضویت از 1399/07/27

  • دوشنبه 19 مهر 1400
  • 17:37

دوست عزیز تعداد سوالات زیاد هست و گاهی ممکنه برخی از سوالات دیده نشن!

من با این کتابخانونه ای که شما میگین کار نکردم و بهتره به داکیومنت کتابخونه مراجعه کنین

موفق باشین :)

کاربر سایت

rezanemati

عضویت از 1400/02/21

  • دوشنبه 19 مهر 1400
  • 17:40

سلام همه این راه هارو رفتم ممنون...

کاربر سایت

حمیدرضا قهرمانی

عضویت از 1399/06/29

  • دوشنبه 26 مهر 1400
  • 08:22

سلام ، در کل پیاده سازی ربات تلگرام در کلاینت ایده جالبی نیست بهتره اگر نیاز دارید که در اپلیکیشن اندروید به آن متصل بشید ، ربات رو در سرور با تکنولوژی های بهتری که داکیومنت بهتری هم دارند پیاده سازی بکنید و با api به آن متصل شوید تا هم به این مشکل ها نخورید هم اینکه به مشکلات فیلترینگ گریبانگیر نشید 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)