القائمة الرئيسية

الصفحات

 

طريقة خدمة truecaller

بعد كثرة انتشار تروكالر التطبيق الذي يقوم بتحديد هوية واسم المتصل فقط من خلال رقم هاتفه ، قد يتساءل الكثير من المبرمجين أو بعض الأشخاص حول طريقة عمل هذا التطبيق وهل لديه صلة أو علاقة بشركات الاتصالات تزود التطبيق باسم ومعلومات الشخص ، أو يظن المبرمجين أن هناك خوارزميات معقدة لكن في الواقع هي مجرد فكرة .


فكرة وطريقة عمل true caller التي سأزودك هي رائعة ، ليس لأني اطلعت على كود التطبيق ، وإنما بعد بحث طويل عندما أردت صنع تطبيق مشابه سميته هوية المتصل الأول بحثت وحصلت على أفكار طبقتها بالتطبيق ونجحت ، وإن كنت مبرمج ستستفيد كثيرا من هذا الدرس ويمكنك من تحويل هذه الطريقة إلى صنع سكربت محرك بحث في أي تطبيق أو موقع .


طريقة عمل تطبيق تحديد اسم المتصل من خلال رقم هاتفه :

أولا عندما تقوم بتحميل التطبيق فإنه يصل إلى العديد من الصلاحيات بهاتفك ومنها الوصول إلى قائمة الأسماء بالهاتف Contact ثم يقوم التطبيق بتسجيل كل اسم عندك مع رقم هاتفه في قاعدة بيانات لا يمكن لأحد الوصول إليها وهي خاصة بالتطبيق ، لذلك تأكد أن للتطبيق قاعدة بيانات MySql بها العديد من الاسماء مسجلة مع ارقامهم الهاتفية ، ولذلك بعض الأحيان عندما تريد معرفة شخص من رقمه يطلع لك لقبه بدل اسمه الحقيقي لانه طبعا مسجل على هذا الشكل في أغلب الهواتف .


هنا يكمن سر لا اعرف ان كان تطبيق تري كالر قام بتطبيقها أم لا وهي كيف يقوم بمعرفة الإسم الحقيقي للشخص من  خلال رقم هاتفه بدل لقبه وهي الفكرة التي وضعتها بالتطبيق وسأشارككم إياها ، ومن الأفضل تكون أولا تعرف أوامر وقوة قواعد بيانات sql .


كنت استخدمت MySql مع php في تطبيق هوية المتصل الاول وكنت رابط التطبيق مع موقع ليصل التطبيق إلى قواعد بينات phpMyAdmin وهنا كان يأخد ارقام هاتفك مع الاسم ويسجلها بقاعدة البيانات وكل رقم هاتف اضفته جديد يسجله بقاعدة البيانات الخاصة بتطبيقى حتى وصلت إلى ازيد من 3 ملايين رقم هاتف حول العالم مع الدولة واسم الهوية ، لكن بعض الارقام تكون مسجلة من قبل باسماء متعددة في الهواتف فالبعض يضع الاسم الحقيقي للشخص والبعض يضع لقبه المعروف به بين اصدقائه وربما زوجته تضع اسم زوجي لرقم الهاتف وهكذا .


في هذه الحالة نحن نريد الحصول على الاسم الحقيقي من TrueCaller لنعرف الشخص ولا نريد لقبه فان طلع لك فقط my love أو my father أو bs فكيف تعرف صاحب الرقم ، هنا تكمن الفكرة فالتطبيق عندما يريد تسجل رقم بقاعدة البيانات يتأكد من الرقم هل موجود مسبقا فإن وجده يرى الاسم المسجل به فان كان الاسم موجود فهناك خانة أخرى تسجل تكرار الاسم مطابقا للرقم وإلا اذا لم يكن موجود الاسم يسجل في عمود جديد فمثلا :

ان كان رقم الهاتف الخاص بي هو : 0658691009

سيضع أغلب الاشخاص اسمي عند تسجيل رقم هاتفي بهاتفهم إما باللغة العربية محمد حيرش أو بالفرنسية  mohamed hirech ، وأما my love فقد تضعها فقط زوجتي وهذا يعني سيتكرر لمرة واحدة وأما my father سيضعها فقط ابنائي الاثنين فقط وأما ان كان لقب فاغلب اصدقائي لن يضعوه وقد يضعو اسمي الحقيقي مع الكنية وهذا سيكون مكرر بكثرة وإليك مثال في جدول كيف تكون الأمور مسجلة على قاعدة بينات :

عمل truecaller

هنا كما تشاهد عندما يريد شخص عرض اسم صاحب الرقم 0658691009 سيقوم التطبيق بعرض الاسم المتكرر اكثر وذلك من خلال أمر sql على php وسيبحث عن رقم الهاتف وسيجده متكرر في الجداول ثم سيعرض اولا الأعلى تكرارا في الاسم لذلك سيعرض اسم محمد حيرش .


أما بخصوص الدولة تعرفها من خلال كود php حيث يجلب آيبي مستخدم التطبيق ويحدد الدولة من خلال خدمة تسمى api وأما إن كان الرقم يبدأ بـ 212 وهو ركز الدولة فهناك أمر php لا يأخد سوى الأرقام تسعة الأخيرة عند البحث فالرقم هنا إن كان مسجل 212658691009 أو 2120658691009 أو 0658691009 أو 658691009 فكل هذه متشابه في التسعة أرقام الأخيرة فكما قلت تتسجل هكذا في قاعدة البيانات لكن عند التأكد من تسجيل الرقم مسبقا أو البحث داخل قاعدة البيانات نأخد فقط التسعة أرقام الأخيرة والتأكد من أنها متطابقة أم لا .


هناك خدمة تسمى بكشط المواقع scrape website حيث تقوم بجلب معلومات من موقع آخر من خلال سكربت مبرمج بلغة بايثون أو بي اتش بي وهي خدمة خطيرة على سيرفر تري كالر إن تم كشغه ومعرفته لأن هذه الخدمة قادرة على سرقة جميع الأرقام المسجلة في سيرفر true caller مما سيجعلها قد تباع في الأسواق السوداء أو تستعمل في طرق ترويجية أو في تطبيقات أخرى .


هل اعجبك الموضوع :

تعليقات



التنقل السريع