Twitter API لـ Laravel 10.x و11.x (والإصدارات الجديدة عند إصدارها). يدعم أيضًا أطر العمل الأخرى عبر PHP-DI (أو لا تتردد في إضافة دعم لإطار العمل الخاص بك عبر العلاقات العامة)
تحتاج إلى إنشاء تطبيق وإنشاء رمز الوصول الخاص بك في إدارة التطبيقات.
composer require atymic/twitter:^3.0 -W
ما عليك سوى تعيين متغيرات البيئة أدناه في .env
الخاص بك.
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_API_VERSION=
تشغيل php artisan vendor:publish --provider="AtymicTwitterServiceProviderLaravelServiceProvider"
/config/twitter.php
3.x هو الإصدار الرئيسي الحالي، وهو غير متوافق مع الإصدار 2.x.
راجع دليل الترحيل في UPGRADE.md.
لم تعد تتم صيانة 2.x. نحن لا نقبل إصلاحات الأخطاء، يرجى الترقية إلى الإصدار 3.x
يمكنك الاختيار من بين ثلاثة تنسيقات إخراج مختلفة. افتراضيًا، سيتم إرجاع استجابات API v1 ككائنات بينما سيتم إرجاع استجابات API v2 بتنسيق JSON. لتغيير ذلك، استخدم خيار response_format
في المعلمات التي تمررها إلى أي طريقة.
response_format : object|json|array (v1 default:object) (v2 default:json)
لتعيين إصدار twitter API الافتراضي إلى v2 بدلاً من الإصدار الافتراضي v1.1
، قم بتعيين TWITTER_API_VERSION
على 2
في .env
الخاص بك.
إذا قمت بتعيين v1.1
API كإعداد افتراضي، فيمكنك استخدام Twitter::forApiV2()
للحصول على مثيل للعميل v2. وينطبق الشيء نفسه على الحصول على مثيل v1
من عميل v2
، باستخدام Twitter::forApiV1()
.
من الآمن الاتصال Twitter::forApiV1()
على مثيل عميل v1
أو v2
.
getSettings()
- إرجاع الإعدادات (بما في ذلك الاتجاه الحالي والمعلومات الجغرافية ووقت النوم) للمستخدم المصادق.getCredentials()
postSettings()
- يقوم بتحديث إعدادات المستخدم المصادق.postSettingsDevice()
- يضبط الجهاز الذي يقوم Twitter بتسليم التحديثات إليه للمستخدم المصادق. سيؤدي عدم إرسال أي شيء كمعلمة للجهاز إلى تعطيل تحديثات الرسائل القصيرة.postProfile()
- يضبط بعض القيم التي يستطيع المستخدمون تعيينها ضمن علامة التبويب "الحساب" في صفحة الإعدادات الخاصة بهم. سيتم تحديث المعلمات المحددة فقط.postBackground()
- يقوم بتحديث صورة خلفية الملف الشخصي للمستخدم المصادق. يمكن أيضًا استخدام هذه الطريقة لتمكين أو تعطيل صورة خلفية الملف الشخصي.postProfileImage()
- يقوم بتحديث صورة الملف الشخصي للمستخدم المصادق عليه. لاحظ أن هذه الطريقة تتوقع بيانات أولية متعددة الأجزاء، وليس عنوان URL للصورة.destroyUserBanner()
- يزيل شعار الملف الشخصي الذي تم تحميله للمستخدم المصادق. إرجاع HTTP 200 عند النجاح.postUserBanner()
- يقوم بتحميل شعار الملف الشخصي نيابةً عن المستخدم المصادق. للحصول على أفضل النتائج، قم بتحميل عقدة Profile_banner_url في كائنات المستخدمين الخاصة بهم. setWebhook($env, $url)
- يسجل عنوان URL لخطاف الويب لجميع أنواع الأحداث في البيئة المحددة.crcHash($crcToken)
- إرجاع تجزئة HMAC SHA-256 من رمز CRC المحدد وسر المستهلك. ستحتاج إلى إرجاع هذا على خطاف الويب الخاص بك (مزيد من المعلومات).getWebhooks($env)
- يُرجع عناوين URL الخاصة بخطاف الويب للبيئة المحددة (أو جميع البيئات إذا لم يتم توفيرها)، وحالاتها لتطبيق المصادقة.updateWebhooks($env, $webhookId)
- يؤدي إلى تشغيل فحص استجابة التحدي (CRC) لخطاف الويب الخاص بالبيئات المحددة لجميع الأنشطة. إذا نجح التحقق، فسيتم إرجاع صحيح وإعادة تمكين خطاف الويب عن طريق ضبط حالته على صالح.destroyWebhook($env, $webhookId)
- يزيل خطاف الويب من تكوين جميع أنشطة التطبيق المقدم. يعود صحيحا على النجاح.setSubscriptions($env)
- يشترك في التطبيق المقدم لجميع الأحداث الخاصة بالبيئة المتوفرة لجميع أنواع الرسائل. يعود صحيحا على النجاح.getSubscriptions($env)
- يُرجع صحيحًا إذا كان سياق المستخدم المقدم يحتوي على اشتراك نشط مع التطبيق المقدم.getSubscriptionsCount()
- يُرجع عدد الاشتراكات النشطة حاليًا على حسابك لجميع الأنشطة.getSubscriptionsList($env)
- يُرجع قائمة باشتراكات جميع أنواع الأنشطة الحالية.destroyUserSubscriptions($env, $userId)
- يقوم بإلغاء تنشيط الاشتراك لمعرف المستخدم المحدد من البيئة. يعود صحيحا على النجاح. getBlocks()
- إرجاع مجموعة من كائنات المستخدم التي يحظرها المستخدم المصادق.getBlocksIds()
- يُرجع مجموعة من معرفات المستخدم الرقمية التي يحظرها المستخدم المصادق.postBlock()
- يمنع المستخدم المحدد من متابعة المستخدم المصادق. بالإضافة إلى ذلك، لن يظهر المستخدم المحظور في الإشارات أو الجدول الزمني للمستخدمين المصادقين (ما لم تتم إعادة تغريده بواسطة مستخدم آخر). إذا كانت هناك علاقة متابعة أو علاقة صداقة، فسيتم تدميرها.destroyBlock()
- يقوم بإلغاء حظر المستخدم المحدد في معلمة المعرف للمستخدم المصادق. إرجاع المستخدم غير المحظور بالتنسيق المطلوب عند النجاح. إذا كانت العلاقات موجودة قبل إنشاء الحظر، فلن يتم استعادتها. getDm()
- يُرجع حدث رسالة مباشرة واحدًا، محددًا بواسطة معلمة معرف.getDms()
- إرجاع جميع أحداث الرسائل المباشرة (المرسلة والمستلمة) خلال آخر 30 يومًا. مرتبة حسب الترتيب الزمني العكسي.destroyDm()
- يدمر الرسالة المباشرة المحددة في معلمة المعرف المطلوبة. يجب أن يكون المستخدم المصادق هو مستلم الرسالة المباشرة المحددة.postDm()
- ينشر حدث message_create جديد مما يؤدي إلى إرسال رسالة مباشرة إلى مستخدم محدد من المستخدم المصادق. إرجاع حدث إذا نجح. يدعم نشر الرسائل المباشرة مع الرد السريع الاختياري ومرفقات الوسائط. getFavorites()
- يعرض أحدث 20 تغريدة مفضلة بواسطة المستخدم المصادق أو المحدد.destroyFavorite()
- إلغاء تفضيل الحالة المحددة في معلمة المعرف كمستخدم مصادق. إرجاع الحالة غير المفضلة بالتنسيق المطلوب عند نجاحها.postFavorite()
- يقوم بتفضيل الحالة المحددة في معلمة المعرف كمستخدم مصادق. إرجاع الحالة المفضلة عند النجاح. getNoRters()
- يُرجع مجموعة من معرفات المستخدم التي لا يرغب المستخدم المصادق عليه حاليًا في تلقي التغريدات المعادة منها.getFriendsIds()
- تقوم بإرجاع مجموعة من معرفات المستخدمين لكل مستخدم يتبع المستخدم المحدد.getFollowersIds()
- يُرجع مجموعة من معرفات المستخدمين لكل مستخدم يتبع المستخدم المحدد.getFriendshipsIn()
- تقوم بإرجاع مجموعة من المعرفات الرقمية لكل مستخدم لديه طلب معلق لمتابعة المستخدم المصادق.getFriendshipsOut()
- تقوم بإرجاع مجموعة من المعرفات الرقمية لكل مستخدم محمي لديه طلب متابعة معلق للمستخدم المصادق.postFollow()
- يسمح للمستخدمين المصادقين بمتابعة المستخدم المحدد في معلمة المعرف.postUnfollow()
- يسمح للمستخدم المصادق بإلغاء متابعة المستخدم المحدد في معلمة المعرف.postFollowUpdate()
- يسمح بتمكين أو تعطيل إعادة التغريد وإشعارات الجهاز من المستخدم المحدد.getFriendships()
- إرجاع معلومات مفصلة حول العلاقة بين مستخدمين عشوائيين.getFriends()
- تقوم بإرجاع مجموعة من كائنات المستخدم لكل مستخدم يتابعه المستخدم المحدد (المعروف باسم "أصدقائه").getFollowers()
- إرجاع مجموعة مؤشرة من كائنات المستخدم للمستخدمين الذين يتابعون المستخدم المحدد.getFriendshipsLookup()
- إرجاع علاقات المستخدم المصادق إلى قائمة مفصولة بفواصل تصل إلى 100 Screen_names أو user_ids المتوفرة. يمكن أن تكون قيم الاتصالات كما يلي: متابعة، متابعة_الطلب، متابعة_بواسطة، لا شيء، حظر، كتم الصوت. getGeo()
- إرجاع جميع المعلومات حول مكان معروف.getGeoReverse()
- بالنظر إلى خط الطول وخط العرض، فإنه يبحث عما يصل إلى 20 مكانًا يمكن استخدامها كمعرف مكان عند تحديث الحالة.getGeoSearch()
- ابحث عن الأماكن التي يمكن إرفاقها بالحالة/التحديث. بالنظر إلى خط الطول وخط العرض، أو عنوان IP، أو الاسم، سيعرض هذا الطلب قائمة بجميع الأماكن الصالحة التي يمكن استخدامها كمعرف المكان عند تحديث الحالة.getGeoSimilar()
- يحدد الأماكن القريبة من الإحداثيات المحددة والتي تتشابه في الاسم. من الناحية النظرية، يمكنك استخدام هذه الطريقة للحصول على قائمة بالأماكن المعروفة للاختيار من بينها أولاً. ثم، إذا كان المكان المطلوب غير موجود، فقم بتقديم طلب إلى POST Geo/place لإنشاء مكان جديد. الرمز المميز الموجود في الرد هو الرمز المميز المطلوب لتتمكن من إنشاء مكان جديد. postSpam()
- قم بالإبلاغ عن المستخدم المحدد باعتباره حسابًا غير مرغوب فيه إلى Twitter. بالإضافة إلى ذلك، يؤدي ما يعادل كتل POST/الإنشاء نيابة عن المستخدم المصادق عليه.getHelpConfiguration()
- إرجاع التكوين الحالي الذي يستخدمه Twitter بما في ذلك الارتباطات الثابتة twitter.com التي ليست أسماء مستخدمين، والحد الأقصى لدرجات دقة الصور، وأطوال عنوان URL لـ t.co.getHelpLanguages()
- يعرض قائمة اللغات التي يدعمها تويتر بالإضافة إلى رمز اللغة الذي يدعمه تويتر.getHelpPrivacy()
- إرجاع سياسة خصوصية Twitter.getHelpTos()
- لإرجاع شروط خدمة Twitter. ملحوظة: هذه ليست نفس سياسة المطور.getAppRateLimit()
- يُرجع حدود المعدل الحالي للطرق التي تنتمي إلى مجموعات الموارد المحددة. getLists()
- يُرجع كافة القوائم التي اشترك فيها المستخدم المُصادق أو المُحدد، بما في ذلك القوائم الخاصة به. يتم تحديد المستخدم باستخدام معلمات user_id أو screen_name. إذا لم يتم تحديد أي مستخدم، فسيتم استخدام المستخدم المصادق.getListStatuses()
- يُرجع جدولًا زمنيًا للتغريدات التي كتبها أعضاء القائمة المحددة. يتم تضمين إعادة التغريد بشكل افتراضي. استخدم المعلمة include_rts=false لحذف إعادات التغريد.destroyListMember()
- يزيل العضو المحدد من القائمة. يجب أن يكون المستخدم الذي تمت مصادقته هو مالك القائمة حتى يتمكن من إزالة الأعضاء من القائمة.getListsMemberships()
- إرجاع القوائم التي تمت إضافة المستخدم المحدد إليها. إذا لم يتم توفير user_id أو Screen_name، فسيتم إرجاع العضويات للمستخدم المصادق.getListsSubscribers()
- إرجاع المشتركين في القائمة المحددة. لن يتم عرض المشتركين في القائمة الخاصة إلا إذا كان المستخدم المصادق عليه يمتلك القائمة المحددة.postListSubscriber()
- يشترك المستخدم المصادق عليه في القائمة المحددة.getListSubscriber()
- إرجاع المشتركين في القائمة المحددة. لن يتم عرض المشتركين في القائمة الخاصة إلا إذا كان المستخدم المصادق عليه يمتلك القائمة المحددة.destroyListSubscriber()
- يلغي اشتراك المستخدم المصادق عليه من القائمة المحددة.postListCreateAll()
- يضيف أعضاء متعددين إلى القائمة، عن طريق تحديد قائمة مفصولة بفواصل لمعرفات الأعضاء أو أسماء الشاشة. يجب أن يمتلك المستخدم المصادق القائمة حتى يتمكن من إضافة أعضاء إليها. لاحظ أن القوائم لا يمكن أن تحتوي على أكثر من 5000 عضو، وأنك مقيد بإضافة ما يصل إلى 100 عضو إلى القائمة في المرة الواحدة باستخدام هذه الطريقة.getListMember()
- تحقق مما إذا كان المستخدم المحدد عضوًا في القائمة المحددة.getListMembers()
- إرجاع أعضاء القائمة المحددة. لن يتم عرض أعضاء القائمة الخاصة إلا إذا كان المستخدم المصادق عليه يمتلك القائمة المحددة.postListMember()
- إضافة عضو إلى القائمة. يجب أن يمتلك المستخدم المصادق القائمة حتى يتمكن من إضافة أعضاء إليها. لاحظ أن القوائم لا يمكن أن تحتوي على أكثر من 5000 عضو.destroyList()
- يحذف القائمة المحددة. يجب أن يمتلك المستخدم المصادق القائمة حتى يتمكن من تدميرها.postListUpdate()
- يقوم بتحديث القائمة المحددة. يجب أن يمتلك المستخدم المصادق القائمة ليتمكن من تحديثها.postList()
- ينشئ قائمة جديدة للمستخدم المصادق عليه. لاحظ أنه لا يمكنك إنشاء أكثر من 20 قائمة لكل حساب.getList()
- إرجاع القائمة المحددة. لن يتم عرض القوائم الخاصة إلا إذا كان المستخدم المصادق عليه يمتلك القائمة المحددة.getListSubscriptions()
- الحصول على مجموعة من القوائم التي اشترك فيها المستخدم المحدد، 20 قائمة لكل صفحة بشكل افتراضي. لا يتضمن قوائم المستخدم الخاصة.destroyListMembers()
- يزيل أعضاء متعددين من القائمة، عن طريق تحديد قائمة مفصولة بفواصل لمعرفات الأعضاء أو أسماء الشاشة. يجب أن يمتلك المستخدم المصادق القائمة ليتمكن من إزالة الأعضاء منها. لاحظ أن القوائم لا يمكن أن تحتوي على أكثر من 500 عضو، وأنك مقيد بإزالة ما يصل إلى 100 عضو إلى القائمة في المرة الواحدة باستخدام هذه الطريقة.getListOwnerships()
- إرجاع القوائم المملوكة لمستخدم تويتر المحدد. لن يتم عرض القوائم الخاصة إلا إذا كان المستخدم المصادق عليه هو أيضًا مالك القوائم. uploadMedia()
- تحميل الوسائط (الصور) إلى تويتر، لاستخدامها في تغريدة أو بطاقة مستضافة على تويتر. getSearch()
- يعرض مجموعة من التغريدات ذات الصلة التي تطابق استعلامًا محددًا.getSavedSearches()
- يُرجع استعلامات البحث المحفوظة للمستخدم المصادق عليه.getSavedSearch()
- استرداد المعلومات الخاصة بالبحث المحفوظ الذي يمثله المعرف المحدد. يجب أن يكون المستخدم المصادق هو مالك معرف البحث المحفوظ المطلوب.postSavedSearch()
- إنشاء بحث محفوظ جديد للمستخدم المصادق عليه. يجوز للمستخدم أن يكون لديه 25 عملية بحث محفوظة فقط.destroySavedSearch()
- يدمر البحث المحفوظ للمستخدم المصادق. يجب أن يكون المستخدم المصادق هو مالك معرف البحث المحفوظ الذي يتم إتلافه. getMentionsTimeline()
- يعرض أحدث 20 إشارة (تغريدات تحتوي على @screen_name للمستخدم) للمستخدم المُصادق.getUserTimeline()
- يعرض مجموعة من أحدث التغريدات التي نشرها المستخدم والمشار إليها بواسطة معلمات screen_name أو user_id.getHomeTimeline()
- يقوم بإرجاع مجموعة من أحدث التغريدات والتغريدات التي نشرها المستخدم المصادق عليه والمستخدمون الذين يتابعونه. يعد الجدول الزمني للمنزل أمرًا أساسيًا لكيفية تفاعل معظم المستخدمين مع خدمة تويتر. *getRtsTimeline()
- يعرض أحدث التغريدات التي كتبها المستخدم المصادق والتي أعاد الآخرون تغريدها.getRts()
- يُرجع مجموعة من أحدث 100 إعادة تغريد للتغريدة المحددة بواسطة معلمة المعرف.getTweet()
- يُرجع تغريدة واحدة محددة بواسطة معلمة المعرف. سيتم أيضًا تضمين مؤلف التغريدة في التغريدة.destroyTweet()
- يدمر الحالة المحددة بواسطة معلمة المعرف المطلوبة. يجب أن يكون المستخدم المصادق هو مؤلف الحالة المحددة. إرجاع الحالة المدمرة إذا نجحت.postTweet()
- يقوم بتحديث الحالة الحالية للمستخدم المصادق عليه، والمعروفة أيضًا باسم التغريد.postRt()
- إعادة تغريد تغريدة. إرجاع التغريدة الأصلية مع تضمين تفاصيل إعادة التغريد.getOembed()
- يعرض تغريدة واحدة، محددة بواسطة عنوان URL للتغريدة على الويب أو معرف التغريدة، بتنسيق متوافق مع oEmbed. سيتم التعرف تلقائيًا على مقتطف HTML الذي تم إرجاعه باعتباره تغريدة مضمنة عندما يتم تضمين أداة Twitter JavaScript في الصفحة.getRters()
- يُرجع مجموعة تصل إلى 100 معرف مستخدم ينتمي إلى المستخدمين الذين أعادوا تغريد التغريدة المحددة بواسطة معلمة المعرف.getStatusesLookup()
- إرجاع كائنات التغريدات المرطبة بالكامل لما يصل إلى 100 تغريدة لكل طلب، كما هو محدد بواسطة قيم مفصولة بفواصل تم تمريرها إلى معلمة المعرف. getTrendsPlace()
- يعرض أهم 10 موضوعات شائعة لـ WOEID محدد، إذا كانت المعلومات الشائعة متاحة لها.getTrendsAvailable()
- يُرجع المواقع التي يحتوي تويتر على معلومات موضوعية رائجة لها.getTrendsClosest()
- إرجاع المواقع التي يحتوي تويتر على معلومات موضوعات رائجة لها، الأقرب إلى موقع محدد. getUsersLookup()
- إرجاع كائنات المستخدم كاملة الترطيب لما يصل إلى 100 مستخدم لكل طلب، كما هو محدد بواسطة قيم مفصولة بفواصل تم تمريرها إلى معلمات user_id و/أو screen_name.getUsers()
- تقوم بإرجاع مجموعة متنوعة من المعلومات حول المستخدم المحدد بواسطة معلمة user_id أو Screen_name المطلوبة. سيتم إرجاع أحدث تغريدة للمؤلف مضمنة عندما يكون ذلك ممكنًا.getUsersSearch()
- يوفر واجهة بحث بسيطة قائمة على الملاءمة لحسابات المستخدمين العامة على تويتر. حاول الاستعلام حسب الاهتمام الموضعي أو الاسم الكامل أو اسم الشركة أو الموقع أو معايير أخرى. عمليات البحث عن المطابقة التامة غير مدعومة.getUserBanner()
- يُرجع خريطة بأحجام مختلفة لشعار الملف الشخصي للمستخدم المحدد. إذا لم يقم المستخدم بتحميل شعار الملف الشخصي، فسيتم تقديم HTTP 404 بدلاً من ذلك. يمكن استخدام هذه الطريقة بدلاً من معالجة السلسلة في ملف Profile_banner_url الذي يتم إرجاعه في كائنات المستخدم كما هو موضح في صور الملفات الشخصية واللافتات.muteUser()
- يكتم صوت المستخدم المحدد في معلمة المعرف للمستخدم المصادق.unmuteUser()
- إلغاء كتم صوت المستخدم المحدد في معلمة المعرف للمستخدم المصادق.mutedUserIds()
- يُرجع مصفوفة من معرفات المستخدم الرقمية التي قام المستخدم المصادق بكتمها.mutedUsers()
- يقوم بإرجاع مجموعة من كائنات المستخدم التي قام المستخدم المصادق بكتمها.getSuggesteds()
- الوصول إلى المستخدمين في فئة معينة من قائمة المستخدمين المقترحين على Twitter.getSuggestions()
- الوصول إلى قائمة المستخدمين المقترحة على تويتر. يؤدي هذا إلى إرجاع قائمة فئات المستخدم المقترحة. يمكن استخدام الفئة في GET users/suggestions/:slug للحصول على المستخدمين في تلك الفئة.getSuggestedsMembers()
- الوصول إلى المستخدمين في فئة معينة من قائمة المستخدمين المقترحين على Twitter وإرجاع أحدث حالة لهم إذا لم يكونوا مستخدمين محميين.getTweet()
- يقوم بإرجاع مجموعة متنوعة من المعلومات حول تغريدة واحدة محددة بواسطة المعرف المطلوب.getTweets()
- تقوم بإرجاع مجموعة متنوعة من المعلومات حول التغريدة المحددة بواسطة المعرف المطلوب أو قائمة المعرفات. searchRecent()
- تقوم نقطة نهاية البحث الأخيرة بإرجاع التغريدات من آخر سبعة أيام والتي تطابق استعلام بحث.
searchAll()
- تقوم نقطة نهاية البحث في الأرشيف الكامل بإرجاع السجل الكامل للتغريدات العامة التي تطابق استعلام البحث؛ منذ أن تم إنشاء التغريدة الأولى في 26 مارس 2006.
ملاحظة: نقطة النهاية هذه متاحة فقط لأولئك المعتمدين لمسار منتج البحث الأكاديمي.
userTweets()
- يعرض التغريدات التي ألفها مستخدم واحد، ويتم تحديدها بواسطة معرف المستخدم المطلوب. افتراضيًا، يتم إرجاع أحدث عشر تغريدات لكل طلب. باستخدام ترقيم الصفحات، يمكن استرجاع أحدث 3200 تغريدة.userMentions()
- يعرض التغريدات التي تشير إلى مستخدم واحد محدد بواسطة معرف المستخدم المطلوب. افتراضيًا، يتم إرجاع أحدث عشر تغريدات لكل طلب. باستخدام ترقيم الصفحات، يمكن استرجاع ما يصل إلى 800 تغريدة حديثة. getStreamRules()
- يُرجع قائمة القواعد النشطة حاليًا على نقطة نهاية البث، إما كقائمة أو بشكل فردي.postStreamRules()
- إضافة أو حذف القواعد إلى ساحة المشاركات الخاصة بك.getStream()
- يقوم ببث التغريدات في الوقت الفعلي بناءً على مجموعة محددة من قواعد التصفية. getSampledStream()
- يقوم ببث حوالي 1% من جميع التغريدات في الوقت الفعلي. hideTweet()
- إخفاء الرد على التغريدة أو إظهاره. countRecent()
- تلقي عدد من التغريدات التي تطابق استعلامًا في آخر 7 أيام
countAll()
- تلقي عدد من التغريدات التي تطابق الاستعلام
ملحوظة: متاح فقط عبر مسار منتج البحث الأكاديمي.
Linkify: يحول عناوين URL وأسماء المستخدمين وعلامات التصنيف إلى روابط. يمكن أن يكون نوع التغريدة $ كائنًا أو مصفوفة أو نصًا. عن طريق إرسال كائن أو مصفوفة، ستقوم الطريقة بتوسيع الروابط (t.co) أيضًا.
Twitter:: linkify ( $ tweet );
منذ: تحويل التاريخ إلى فرق (منذ ساعتين)
Twitter:: ago ( $ timestamp );
LinkUser: ينشئ رابطًا لمستخدم معين، من خلال كائن المستخدم الخاص به (مثل $tweet->user)، أو المعرف/السلسلة.
Twitter:: linkUser ( $ user );
LinkTweet: لإنشاء رابط لتغريدة معينة.
Twitter:: linkTweet ( $ tweet );
إرجاع مجموعة من أحدث التغريدات التي نشرها المستخدم والمشار إليها بواسطة معلمات screen_name أو user_id.
Route:: get ( ' /userTimeline ' , function ()
{
return Twitter:: getUserTimeline ([ ' screen_name ' => ' thujohn ' , ' count ' => 20 , ' response_format ' => ' json ' ]);
});
إرجاع مجموعة من أحدث التغريدات والتغريدات التي نشرها المستخدم المصادق عليه والمستخدمون الذين يتابعونه.
Route:: get ( ' /homeTimeline ' , function ()
{
return Twitter:: getHomeTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
إرجاع أحدث الإشارات X (التغريدات التي تحتوي على @screen_name للمستخدم) للمستخدم المُصادق.
Route:: get ( ' /mentionsTimeline ' , function ()
{
return Twitter:: getMentionsTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});
يقوم بتحديث الحالة الحالية للمستخدم المصادق عليه، والمعروفة أيضًا باسم التغريد.
Route:: get ( ' /tweet ' , function ()
{
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' response_format ' => ' json ' ]);
});
يقوم بتحديث الحالة الحالية للمستخدم المصادق مع الوسائط.
Route:: get ( ' /tweetMedia ' , function ()
{
$ uploaded_media = Twitter:: uploadMedia ([ ' media ' => File:: get ( public_path ( ' filename.jpg ' ))]);
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' media_ids ' => $ uploaded_media -> media_id_string ]);
});
احصل على بيانات اعتماد المستخدم عبر البريد الإلكتروني.
$credentials = Twitter::getCredentials([
'include_email' => 'true',
]);
في ما سبق، تحتاج إلى تمرير true كسلسلة، وليس كقيمة منطقية. سيتم تحويل القيمة المنطقية إلى
1
والتي يتجاهلها تويتر.
ويفترض هذا أيضًا أن لديك أذوناتك التي تم إعدادها بشكل صحيح مع Twitter. يجب عليك اختيار "الحصول على البريد الإلكتروني للمستخدم" عند إعداد تطبيق تويتر الخاص بك، ولن يكون تمرير القيمة وحده كافيًا.
تسجيل الدخول مع تويتر
use Atymic Twitter Facade Twitter ;
Route:: get ( ' twitter/login ' , [ ' as ' => ' twitter.login ' , static function () {
$ token = Twitter:: getRequestToken ( route ( ' twitter.callback ' ));
if ( isset ( $ token [ ' oauth_token_secret ' ])) {
$ url = Twitter:: getAuthenticateUrl ( $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_state ' , ' start ' );
Session:: put ( ' oauth_request_token ' , $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_request_token_secret ' , $ token [ ' oauth_token_secret ' ]);
return Redirect:: to ( $ url );
}
return Redirect:: route ( ' twitter.error ' );
}]);
Route:: get ( ' twitter/callback ' , [ ' as ' => ' twitter.callback ' , static function () {
// You should set this route on your Twitter Application settings as the callback
// https://apps.twitter.com/app/YOUR-APP-ID/settings
if (Session:: has ( ' oauth_request_token ' )) {
$ twitter = Twitter:: usingCredentials ( session ( ' oauth_request_token ' ), session ( ' oauth_request_token_secret ' ));
$ token = $ twitter -> getAccessToken ( request ( ' oauth_verifier ' ));
if (! isset ( $ token [ ' oauth_token_secret ' ])) {
return Redirect:: route ( ' twitter.error ' )-> with ( ' flash_error ' , ' We could not log you in on Twitter. ' );
}
// use new tokens
$ twitter = Twitter:: usingCredentials ( $ token [ ' oauth_token ' ], $ token [ ' oauth_token_secret ' ]);
$ credentials = $ twitter -> getCredentials ();
if ( is_object ( $ credentials ) && ! isset ( $ credentials -> error )) {
// $credentials contains the Twitter user object with all the info about the user.
// Add here your own user logic, store profiles, create new users on your tables...you name it!
// Typically you'll want to store at least, user id, name and access tokens
// if you want to be able to call the API on behalf of your users.
// This is also the moment to log in your users if you're using Laravel's Auth class
// Auth::login($user) should do the trick.
Session:: put ( ' access_token ' , $ token );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' Congrats! You ' ve successfully signed in! ' );
}
}
return Redirect:: route ( ' twitter.error ' )
-> with ( ' error ' , ' Crab! Something went wrong while signing you up! ' );
}]);
Route:: get ( ' twitter/error ' , [ ' as ' => ' twitter.error ' , function () {
// Something went wrong, add your own error handling here
}]);
Route:: get ( ' twitter/logout ' , [ ' as ' => ' twitter.logout ' , function () {
Session:: forget ( ' access_token ' );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' You ' ve successfully logged out! ' );
}]);
خطاف ويب
من أجل إعداد خطاف الويب بنجاح، ستحتاج إلى إرجاع تجزئة باستخدام رمز CRC المميز استجابةً من عنوان URL لخطاف الويب الخاص بك (مزيد من المعلومات).
Route:: post ( ' twitter/webhook ' , [ ' as ' => ' twitter.webhook ' , function (){
if ( request ()-> has ( ' crc_token ' ))
return response ()-> json ([ ' response_token ' => Twitter:: crcHash ( request ()-> crc_token )], 200 );
// Your webhook logic goes here
}]);
احصل على تغريدات المستخدم:
// ...
use Atymic Twitter Twitter as TwitterContract ;
use Illuminate Http JsonResponse ;
use Twitter ;
// ...
public function userTweets ( int $ userId ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: userTweets ( $ userId , $ params ));
}
البحث في التغريدات:
// ...
public function searchRecent ( string $ query ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: searchRecent ( $ query , $ params ));
}
// ...
نظرًا لأن Twitter API v2 قيد التطوير النشط، فقد تحتاج إلى استدعاء نقطة نهاية لم نوثقها صراحةً في قسم "الوظائف" أعلاه. فيما يلي مثال لكيفية استخدام هذه الحزمة لإجراء مكالمات إلى أي نقاط نهاية تمت إضافتها حديثًا. هنا نستخدم نقطة نهاية "العد الأخير" المضافة حديثًا.
// ...
$ querier = Atymic Twitter Facade Twitter:: forApiV2 ()
-> getQuerier ();
$ result = $ querier
-> withOAuth2Client ()
-> get ( ' tweets/counts/recent ' , [ ' query ' => ' foo ' ]);
// ...
قم أولاً بتنشيط وضع التصحيح في ملف التكوين.
ثم يمكنك الوصول إلى طريقة السجلات ().
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );