Laravel 10.x, 11.x(및 출시되는 새 버전)용 Twitter API. 또한 PHP-DI를 통해 다른 프레임워크를 지원합니다(또는 PR을 통해 프레임워크에 대한 지원을 자유롭게 추가하세요).
애플리케이션 관리에서 애플리케이션을 생성하고 액세스 토큰을 생성해야 합니다.
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)
기본 트위터 API 버전을 기본 v1.1
대신 v2로 설정하려면 .env
에서 TWITTER_API_VERSION
2
로 설정하세요.
v1.1
API를 기본값으로 설정한 경우 Twitter::forApiV2()
사용하여 v2 클라이언트의 인스턴스를 가져올 수 있습니다. Twitter::forApiV1()
사용하여 v2
클라이언트에서 v1
인스턴스를 가져오는 경우에도 마찬가지입니다.
v1
또는 v2
클라이언트 인스턴스에서 Twitter::forApiV1()
호출하는 것이 안전합니다.
getSettings()
- 인증 사용자에 대한 설정(현재 추세, 지역 및 수면 시간 정보 포함)을 반환합니다.getCredentials()
postSettings()
- 인증 사용자의 설정을 업데이트합니다.postSettingsDevice()
- 인증된 사용자를 위해 Twitter에서 업데이트를 전달할 장치를 설정합니다. 장치 매개변수로 없음을 전송하면 SMS 업데이트가 비활성화됩니다.postProfile()
- 사용자가 설정 페이지의 "계정" 탭에서 설정할 수 있는 일부 값을 설정합니다. 지정된 매개변수만 업데이트됩니다.postBackground()
- 인증하는 사용자의 프로필 배경 이미지를 업데이트합니다. 이 방법을 사용하여 프로필 배경 이미지를 활성화하거나 비활성화할 수도 있습니다.postProfileImage()
- 인증 사용자의 프로필 이미지를 업데이트합니다. 이 방법에는 이미지에 대한 URL이 아닌 원시 멀티파트 데이터가 필요합니다.destroyUserBanner()
- 인증 사용자에 대해 업로드된 프로필 배너를 제거합니다. 성공 시 HTTP 200을 반환합니다.postUserBanner()
- 인증 사용자를 대신하여 프로필 배너를 업로드합니다. 최상의 결과를 얻으려면 사용자 개체에 profile_banner_url 노드를 업로드하세요. setWebhook($env, $url)
- 지정된 환경의 모든 이벤트 유형에 대한 웹훅 URL을 등록합니다.crcHash($crcToken)
- 지정된 CRC 토큰 및 소비자 비밀번호에서 HMAC SHA-256 해시를 반환합니다. 웹훅에서 이를 반환해야 합니다(추가 정보).getWebhooks($env)
- 지정된 환경(또는 환경이 제공되지 않은 경우 모든 환경)에 대한 웹훅 URL과 인증 앱에 대한 상태를 반환합니다.updateWebhooks($env, $webhookId)
- 모든 활동에 대해 지정된 환경 웹후크에 대한 CRC(챌린지 응답 확인)를 트리거합니다. 확인에 성공하면 true를 반환하고 상태를 유효로 설정하여 웹훅을 다시 활성화합니다.destroyWebhook($env, $webhookId)
- 제공된 애플리케이션의 모든 활동 구성에서 웹훅을 제거합니다. 성공하면 true를 반환합니다.setSubscriptions($env)
- 모든 메시지 유형에 대해 제공된 환경에 대한 모든 이벤트에 제공된 애플리케이션을 구독합니다. 성공하면 true를 반환합니다.getSubscriptions($env)
- 제공된 사용자 컨텍스트에 제공된 애플리케이션에 대한 활성 구독이 있는 경우 true를 반환합니다.getSubscriptionsCount()
- 모든 활동에 대해 현재 계정에서 활성화된 구독 수를 반환합니다.getSubscriptionsList($env)
- 현재 모든 활동 유형 구독 목록을 반환합니다.destroyUserSubscriptions($env, $userId)
- 환경에서 지정된 사용자 ID에 대한 구독을 비활성화합니다. 성공하면 true를 반환합니다. getBlocks()
- 인증 사용자가 차단하는 사용자 개체 컬렉션을 반환합니다.getBlocksIds()
- 인증 사용자가 차단하고 있는 숫자 사용자 ID의 배열을 반환합니다.postBlock()
- 지정된 사용자가 인증 사용자를 팔로우하지 못하도록 차단합니다. 또한 차단된 사용자는 인증 사용자의 멘션이나 타임라인에 표시되지 않습니다(다른 사용자가 리트윗하지 않는 한). 팔로우 또는 친구 관계가 존재하는 경우 해당 관계는 삭제됩니다.destroyBlock()
- 인증 사용자에 대한 ID 매개변수에 지정된 사용자를 차단 해제합니다. 성공하면 차단 해제된 사용자를 요청된 형식으로 반환합니다. 차단이 시작되기 전에 관계가 존재했다면 해당 관계는 복원되지 않습니다. getDm()
- id 매개변수로 지정된 단일 직접 메시지 이벤트를 반환합니다.getDms()
- 지난 30일 동안의 모든 쪽지 이벤트(전송 및 수신 모두)를 반환합니다. 시간 역순으로 정렬했습니다.destroyDm()
- 필수 ID 매개변수에 지정된 다이렉트 메시지를 삭제합니다. 인증 사용자는 지정된 다이렉트 메시지의 수신자여야 합니다.postDm()
- 새 message_create 이벤트를 게시하여 인증 사용자가 지정된 사용자에게 직접 메시지를 보냅니다. 성공하면 이벤트를 반환합니다. 선택 사항인 빠른 답장 및 미디어 첨부를 통해 쪽지 게시를 지원합니다. getFavorites()
- 인증한 사용자 또는 지정된 사용자가 즐겨찾기에 추가한 가장 최근 트윗 20개를 반환합니다.destroyFavorite()
- ID 매개변수에 지정된 상태를 인증 사용자로 선호하지 않습니다. 성공 시 즐겨찾기 해제 상태를 요청된 형식으로 반환합니다.postFavorite()
- ID 매개변수에 지정된 상태를 인증 사용자로 즐겨찾기에 추가합니다. 성공하면 즐겨찾기 상태를 반환합니다. getNoRters()
- 현재 인증된 사용자가 리트윗을 받고 싶지 않은 user_id 컬렉션을 반환합니다.getFriendsIds()
- 지정된 사용자를 팔로우하는 모든 사용자에 대해 커서가 있는 사용자 ID 컬렉션을 반환합니다.getFollowersIds()
- 지정된 사용자를 팔로우하는 모든 사용자에 대해 커서가 있는 사용자 ID 컬렉션을 반환합니다.getFriendshipsIn()
- 인증 사용자를 팔로우하라는 요청이 보류 중인 모든 사용자에 대한 숫자 ID 컬렉션을 반환합니다.getFriendshipsOut()
- 인증 사용자가 보류 중인 팔로우 요청을 갖고 있는 모든 보호된 사용자에 대한 숫자 ID 컬렉션을 반환합니다.postFollow()
- 인증 사용자가 ID 매개변수에 지정된 사용자를 팔로우할 수 있도록 허용합니다.postUnfollow()
- 인증 사용자가 ID 매개변수에 지정된 사용자를 팔로우 해제할 수 있도록 허용합니다.postFollowUpdate()
- 지정된 사용자의 리트윗 및 장치 알림을 활성화하거나 비활성화할 수 있습니다.getFriendships()
- 임의의 두 사용자 간의 관계에 대한 자세한 정보를 반환합니다.getFriends()
- 지정된 사용자가 팔로우하는 모든 사용자(또는 "친구"라고도 함)에 대해 커서가 있는 사용자 개체 컬렉션을 반환합니다.getFollowers()
- 지정된 사용자를 팔로우하는 사용자에 대해 커서가 있는 사용자 개체 컬렉션을 반환합니다.getFriendshipsLookup()
- 인증 사용자의 관계를 제공된 최대 100개의 screen_name 또는 user_ids로 구성된 쉼표로 구분된 목록으로 반환합니다. 연결 값은 다음과 같을 수 있습니다: 팔로잉, 팔로잉_요청, 팔로잉_by, 없음, 차단, 음소거. getGeo()
- 알려진 장소에 대한 모든 정보를 반환합니다.getGeoReverse()
- 위도와 경도가 주어지면 상태 업데이트 시 place_id로 사용할 수 있는 장소를 최대 20개까지 검색합니다.getGeoSearch()
- 상태/업데이트에 첨부할 수 있는 장소를 검색합니다. 위도와 경도 쌍, IP 주소 또는 이름이 주어지면 이 요청은 상태를 업데이트할 때 place_id로 사용할 수 있는 모든 유효한 장소 목록을 반환합니다.getGeoSimilar()
- 이름이 유사한 지정된 좌표 근처의 장소를 찾습니다. 개념적으로는 먼저 선택할 수 있는 알려진 장소 목록을 얻으려면 이 방법을 사용합니다. 그런 다음 원하는 장소가 존재하지 않으면 POST geo/place에 요청하여 새 장소를 만듭니다. 응답에 포함된 토큰은 새로운 장소를 생성하는 데 필요한 토큰입니다. postSpam()
- 지정된 사용자를 스팸 계정으로 Twitter에 신고합니다. 또한 인증된 사용자를 대신하여 POST 블록/생성과 동일한 작업을 수행합니다.getHelpConfiguration()
- 사용자 이름이 아닌 twitter.com 슬러그, 최대 사진 해상도 및 t.co URL 길이를 포함하여 Twitter에서 사용하는 현재 구성을 반환합니다.getHelpLanguages()
- Twitter에서 지원하는 언어 코드와 함께 Twitter에서 지원하는 언어 목록을 반환합니다.getHelpPrivacy()
- 트위터의 개인정보 보호정책을 반환합니다.getHelpTos()
- 트위터 서비스 약관을 반환합니다. 참고: 이는 개발자 정책과 동일하지 않습니다.getAppRateLimit()
- 지정된 리소스 계열에 속하는 메서드에 대한 현재 속도 제한을 반환합니다. getLists()
- 자신의 목록을 포함하여 인증 사용자 또는 지정된 사용자가 구독하는 모든 목록을 반환합니다. 사용자는 user_id 또는 screen_name 매개변수를 사용하여 지정됩니다. 사용자가 지정되지 않은 경우 인증 사용자가 사용됩니다.getListStatuses()
- 지정된 목록의 구성원이 작성한 트윗의 타임라인을 반환합니다. 리트윗은 기본적으로 포함됩니다. 리트윗을 생략하려면 include_rts=false 매개변수를 사용하세요.destroyListMember()
- 목록에서 지정된 구성원을 제거합니다. 목록에서 구성원을 제거하려면 인증된 사용자가 목록의 소유자여야 합니다.getListsMemberships()
- 지정된 사용자가 추가된 목록을 반환합니다. user_id 또는 screen_name이 제공되지 않으면 인증하는 사용자의 멤버십이 반환됩니다.getListsSubscribers()
- 지정된 목록의 구독자를 반환합니다. 비공개 목록 가입자는 인증된 사용자가 지정된 목록을 소유한 경우에만 표시됩니다.postListSubscriber()
- 인증된 사용자를 지정된 목록에 구독합니다.getListSubscriber()
- 지정된 목록의 구독자를 반환합니다. 비공개 목록 가입자는 인증된 사용자가 지정된 목록을 소유한 경우에만 표시됩니다.destroyListSubscriber()
- 지정된 목록에서 인증된 사용자의 구독을 취소합니다.postListCreateAll()
- 쉼표로 구분된 구성원 ID 또는 화면 이름 목록을 지정하여 목록에 여러 구성원을 추가합니다. 인증된 사용자가 목록에 구성원을 추가하려면 목록을 소유해야 합니다. 목록에는 5,000명 이상의 구성원이 포함될 수 없으며 이 방법을 사용하면 한 번에 최대 100명의 구성원을 목록에 추가할 수 있습니다.getListMember()
- 지정된 사용자가 지정된 목록의 구성원인지 확인합니다.getListMembers()
- 지정된 목록의 구성원을 반환합니다. 개인 목록 구성원은 인증된 사용자가 지정된 목록을 소유한 경우에만 표시됩니다.postListMember()
- 목록에 구성원을 추가합니다. 인증된 사용자가 목록에 구성원을 추가하려면 목록을 소유해야 합니다. 목록에는 회원이 5,000명 이상 포함될 수 없습니다.destroyList()
- 지정된 목록을 삭제합니다. 목록을 삭제하려면 인증된 사용자가 목록을 소유해야 합니다.postListUpdate()
- 지정된 목록을 업데이트합니다. 인증된 사용자는 목록을 업데이트할 수 있도록 해당 목록을 소유해야 합니다.postList()
- 인증된 사용자에 대한 새 목록을 만듭니다. 계정당 20개 이상의 목록을 만들 수 없습니다.getList()
- 지정된 목록을 반환합니다. 비공개 목록은 인증된 사용자가 지정된 목록을 소유한 경우에만 표시됩니다.getListSubscriptions()
- 지정된 사용자가 구독하는 목록 컬렉션을 가져옵니다(기본적으로 페이지당 20개 목록). 사용자 자신의 목록은 포함되지 않습니다.destroyListMembers()
- 쉼표로 구분된 구성원 ID 또는 화면 이름 목록을 지정하여 목록에서 여러 구성원을 제거합니다. 인증된 사용자가 목록에서 구성원을 제거하려면 목록을 소유해야 합니다. 목록에는 500명 이상의 구성원이 포함될 수 없으며 이 방법을 사용하면 목록에서 한 번에 최대 100명의 구성원을 제거할 수 있습니다.getListOwnerships()
- 지정된 Twitter 사용자가 소유한 목록을 반환합니다. 비공개 목록은 인증된 사용자가 목록의 소유자이기도 한 경우에만 표시됩니다. uploadMedia()
- 트윗이나 트위터 호스팅 카드에 사용할 미디어(이미지)를 트위터에 업로드합니다. getSearch()
- 지정된 검색어와 일치하는 관련 트윗 모음을 반환합니다.getSavedSearches()
- 인증된 사용자의 저장된 검색어를 반환합니다.getSavedSearch()
- 지정된 ID로 표시되는 저장된 검색에 대한 정보를 검색합니다. 인증 사용자는 요청 중인 저장된 검색 ID의 소유자여야 합니다.postSavedSearch()
- 인증된 사용자에 대해 새 저장된 검색을 만듭니다. 사용자는 25개의 검색어만 저장할 수 있습니다.destroySavedSearch()
- 인증 사용자에 대해 저장된 검색을 삭제합니다. 인증하는 사용자는 파기되는 저장된 검색ID의 소유자여야 합니다. getMentionsTimeline()
- 인증된 사용자에 대한 가장 최근 멘션(사용자의 @screen_name이 포함된 트윗) 20개를 반환합니다.getUserTimeline()
- screen_name 또는 user_id 매개변수로 표시된 사용자가 게시한 가장 최근 트윗의 컬렉션을 반환합니다.getHomeTimeline()
- 인증 사용자와 해당 사용자가 팔로우하는 사용자가 게시한 가장 최근 트윗 및 리트윗 모음을 반환합니다. 홈 타임라인은 대부분의 사용자가 Twitter 서비스와 상호 작용하는 방식의 핵심입니다. *getRtsTimeline()
- 인증 사용자가 작성하고 다른 사람이 리트윗한 가장 최근 트윗을 반환합니다.getRts()
- id 매개변수로 지정된 트윗의 가장 최근 리트윗 100개 컬렉션을 반환합니다.getTweet()
- id 매개변수로 지정된 단일 트윗을 반환합니다. 트윗 작성자도 트윗에 포함됩니다.destroyTweet()
- 필수 ID 매개변수로 지정된 상태를 삭제합니다. 인증 사용자는 지정된 상태의 작성자여야 합니다. 성공하면 파괴된 상태를 반환합니다.postTweet()
- 트윗이라고도 알려진 인증 사용자의 현재 상태를 업데이트합니다.postRt()
- 트윗을 리트윗합니다. 리트윗 세부정보가 포함된 원본 트윗을 반환합니다.getOembed()
- 트윗 웹 URL 또는 트윗 ID로 지정된 단일 트윗을 oEmbed 호환 형식으로 반환합니다. 반환된 HTML 스니펫은 Twitter의 위젯 JavaScript가 페이지에 포함되면 자동으로 포함된 트윗으로 인식됩니다.getRters()
- id 매개변수로 지정된 트윗을 리트윗한 사용자에 속하는 최대 100개의 사용자 ID 컬렉션을 반환합니다.getStatusesLookup()
- id 매개변수에 전달된 쉼표로 구분된 값으로 지정된 대로 요청당 최대 100개의 트윗에 대해 완전히 수화된 트윗 객체를 반환합니다. getTrendsPlace()
- 특정 WOEID에 대한 인기 정보가 있는 경우 해당 WOEID에 대한 상위 10개 인기 주제를 반환합니다.getTrendsAvailable()
- Twitter에서 인기 있는 주제 정보가 있는 위치를 반환합니다.getTrendsClosest()
- Twitter에서 인기 있는 주제 정보를 가지고 있는 위치(지정된 위치에 가장 가까운 위치)를 반환합니다. getUsersLookup()
- user_id 및/또는 screen_name 매개변수에 전달된 쉼표로 구분된 값으로 지정된 대로 요청당 최대 100명의 사용자에 대해 완전히 수화된 사용자 개체를 반환합니다.getUsers()
- 필수 user_id 또는 screen_name 매개변수로 지정된 사용자에 대한 다양한 정보를 반환합니다. 가능한 경우 작성자의 가장 최근 트윗이 인라인으로 반환됩니다.getUsersSearch()
- Twitter의 공개 사용자 계정에 간단한 관련성 기반 검색 인터페이스를 제공합니다. 주제별 관심사, 성명, 회사명, 위치 또는 기타 기준으로 쿼리해 보세요. 정확한 일치 검색은 지원되지 않습니다.getUserBanner()
- 지정된 사용자 프로필 배너의 사용 가능한 크기 변형에 대한 지도를 반환합니다. 사용자가 프로필 배너를 업로드하지 않은 경우 HTTP 404가 대신 제공됩니다. 프로필 이미지 및 배너에 설명된 대로 사용자 개체에 반환된 profile_banner_url에 대한 문자열 조작 대신 이 방법을 사용할 수 있습니다.muteUser()
- 인증 사용자에 대한 ID 매개변수에 지정된 사용자를 음소거합니다.unmuteUser()
- 인증 사용자에 대한 ID 매개변수에 지정된 사용자의 음소거를 해제합니다.mutedUserIds()
- 인증 사용자가 음소거한 숫자 사용자 ID의 배열을 반환합니다.mutedUsers()
- 인증 사용자가 음소거한 사용자 개체의 배열을 반환합니다.getSuggesteds()
- Twitter 추천 사용자 목록의 특정 카테고리에 있는 사용자에 액세스합니다.getSuggestions()
- Twitter의 추천 사용자 목록에 액세스합니다. 그러면 제안된 사용자 카테고리 목록이 반환됩니다. 카테고리는 GET users / presents / :slug에서 해당 카테고리의 사용자를 가져오는 데 사용될 수 있습니다.getSuggestedsMembers()
- Twitter 추천 사용자 목록의 특정 카테고리에 있는 사용자에 액세스하고 보호된 사용자가 아닌 경우 가장 최근 상태를 반환합니다.getTweet()
- 요청된 ID로 지정된 단일 트윗에 대한 다양한 정보를 반환합니다.getTweets()
- 요청한 ID 또는 ID 목록으로 지정된 트윗에 대한 다양한 정보를 반환합니다. searchRecent()
- 최근 검색 엔드포인트는 검색어와 일치하는 지난 7일 동안의 트윗을 반환합니다.
searchAll()
- 전체 아카이브 검색 엔드포인트는 검색 쿼리와 일치하는 공개 트윗의 전체 기록을 반환합니다. 2006년 3월 26일 첫 번째 트윗이 생성된 이후.
참고: 이 엔드포인트는 학술 연구 제품 트랙에 대해 승인된 제품만 사용할 수 있습니다.
userTweets()
- 요청된 사용자 ID로 지정된 단일 사용자가 작성한 트윗을 반환합니다. 기본적으로 요청당 최근 10개의 트윗이 반환됩니다. 페이지 매김을 사용하면 가장 최근의 트윗 3,200개를 검색할 수 있습니다.userMentions()
- 요청된 사용자 ID로 지정된 단일 사용자를 언급하는 트윗을 반환합니다. 기본적으로 요청당 최근 10개의 트윗이 반환됩니다. 페이지 매김을 사용하면 가장 최근 트윗 800개까지 검색할 수 있습니다. getStreamRules()
- 스트리밍 엔드포인트에서 현재 활성화된 규칙 목록을 목록으로 또는 개별적으로 반환합니다.postStreamRules()
- 스트림에 규칙을 추가하거나 삭제합니다.getStream()
- 특정 필터 규칙 세트에 따라 실시간으로 트윗을 스트리밍합니다. getSampledStream()
- 전체 트윗의 약 1%를 실시간으로 스트리밍합니다. hideTweet()
- 트윗에 대한 답글을 숨기거나 숨김을 해제합니다. countRecent()
- 지난 7일 동안 검색어와 일치하는 트윗 수를 받습니다.
countAll()
- 검색어와 일치하는 트윗 수를 받습니다.
참고: Academic Research 제품 트랙을 통해서만 사용할 수 있습니다.
Linkify : URL, @usernames, 해시태그를 링크로 변환합니다. $tweet의 유형은 객체, 배열 또는 텍스트일 수 있습니다. 객체나 배열을 전송함으로써 메소드는 링크(t.co)도 확장합니다.
Twitter:: linkify ( $ tweet );
Ago : 날짜를 차이로 변환(2시간 전)
Twitter:: ago ( $ timestamp );
LinkUser : 사용자 개체(예: $tweet->user) 또는 ID/문자열을 기준으로 특정 사용자에 대한 링크를 생성합니다.
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를 부울이 아닌 문자열로 전달해야 합니다. 부울은 Twitter가 무시하는
1
로 변환됩니다.
이는 또한 귀하가 트위터에 권한을 올바르게 설정했다고 가정합니다. 트위터 앱을 설정할 때 '사용자 이메일 받기'를 선택해야 하며, 값만 전달하는 것만으로는 충분하지 않습니다.
트위터로 로그인
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! ' );
}]);
웹훅
웹훅을 성공적으로 설정하려면 웹훅 URL의 응답으로 CRC 토큰을 사용하여 해시를 반환해야 합니다(자세한 정보).
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 ' ]);
// ...
먼저 구성 파일에서 디버그 모드를 활성화하십시오.
그런 다음 log() 메서드에 액세스할 수 있습니다.
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );