Twitter 서비스(보관됨)

경고

이 문서는 보관되었으며 구성 요소는 Windows 커뮤니티 도구 키트의 현재 버전에서 사용할 수 없습니다.

  • 이 구성 요소를 8.x로 포팅할 수 없습니다.
  • 이 구성 요소에 대한 알려진 권장 대체는 없습니다.

자세한 내용을 원하시면:

원본 설명서는 아래와 같습니다.


경고

(이 API는 나중에 제거될 예정입니다.)

Twitter 서비스를 사용하면 사용자가 데이터를 검색하거나 Twitter에 게시할 수 있습니다.

Twitter 개발자 사이트는 모든 Twitter 개발자를 위한 주요 콘텐츠 사이트입니다. Twitter 앱 목록을 방문하여 기존 앱을 관리합니다.

Twitter 포털 내에서 새로운 앱을 만들기 위해 새 Twitter 앱 생성을 사용할 수 있습니다.

앱 설정

소비자 키 애플리케이션 페이지의 키 및 액세스 토큰 탭에서 복사합니다.

소비자 암호 애플리케이션 페이지의 키 및 액세스 토큰 탭에서 복사합니다.

콜백 URI 애플리케이션에 대한 고유한 URI를 입력합니다. Twitter의 애플리케이션 세부 정보 탭에 있는 콜백 URL 필드와 일치해야 합니다. : https://myapp.company.com - (작업 URL일 필요는 없음)

개요

아래의 코드 섹션에서 GetUserTimeLineAsync 메서드는 일부 Tweet 개체를 반환합니다. 트윗 클래스는 트윗 텍스트 자체와 함께 몇 가지 기본 정보를 반환합니다.

재산 유형 Description
생성일시 문자열 Twitter로 형식이 지정된 트윗의 날짜 및 시간
Text 문자열 트윗의 텍스트(리트윗하는 경우 텍스트가 완료되지 않을 수 있습니다. 원래 트윗에 RetweetedStatus 개체 사용)
Id 문자열 Twitter 상태 식별자
GeoData TwitterGeoData 트윗의 위도 및 경도를 포함하는 클래스
User 트위터 사용자 사용자 ID, 이름, ScreenName 및 ProfileImageUrl을 포함하는 클래스
RetweetedStatus 트윗 이 트윗이 리트윗이면 이 개체에 원래 트윗이 포함됩니다.

문법

// Initialize service
TwitterService.Instance.Initialize(ConsumerKey.Text, ConsumerSecret.Text, CallbackUri.Text);

// Login to Twitter
if (!await TwitterService.Instance.LoginAsync())
{
    return;
}

// Get current user info
var user = await TwitterService.Instance.GetUserAsync();
ProfileImage.DataContext = user;

// Get user time line
ListView.ItemsSource = await TwitterService.Instance.GetUserTimeLineAsync(user.ScreenName, 50);

// Post a tweet
await TwitterService.Instance.TweetStatusAsync(TweetText.Text);

var status = new TwitterStatus
    {
        Message = TweetText.Text,

        // Optional parameters defined by the Twitter "update" API (they may all be null or false)

        DisplayCoordinates = true,
        InReplyToStatusId = "@ValidAccount",
        Latitude = validLatitude,
        Longitude = validLongitude,
        PlaceId = "df51dec6f4ee2b2c", // As defined by Twitter
        PossiblySensitive = true,  // As defined by Twitter (nudity, violence, or medical procedures)
        TrimUser = true
    }

await TwitterService.Instance.TweetStatusAsync(status);

// Post a tweet with a picture
await TwitterService.Instance.TweetStatusAsync(TweetText.Text, stream);

await TwitterService.Instance.TweetStatusAsync(status, stream);

// Search for a specific tag
ListView.ItemsSource = await TwitterService.Instance.SearchAsync(TagText.Text, 50);

// Open a connection with the stream service in order to receive live tweets and events
ListView.ItemsSource = _tweets;
await TwitterService.Instance.StartUserStreamAsync(async tweet =>
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        if (tweet != null)
        {
            _tweets.Insert(0, tweet);
        }
    });
});

// Stop receiving live tweets and events
TwitterService.Instance.StopUserStream();
' Initialize service
TwitterService.Instance.Initialize(ConsumerKey.Text, ConsumerSecret.Text, CallbackUri.Text)

' Login to Twitter
If Not Await TwitterService.Instance.LoginAsync() Then
    Return
End If

' Get current user info
Dim user = Await TwitterService.Instance.GetUserAsync()
ProfileImage.DataContext = user

' Get user time line
ListView.ItemsSource = Await TwitterService.Instance.GetUserTimeLineAsync(user.ScreenName, 50)

' Post a tweet
Await TwitterService.Instance.TweetStatusAsync(TweetText.Text)
Dim status = New TwitterStatus With {
    .Message = TweetText.Text,

    ' Optional parameters defined by the Twitter "update" API (they may all be null or false)

    .DisplayCoordinates = True,
    .InReplyToStatusId = "@ValidAccount",
    .Latitude = validLatitude,
    .Longitude = validLongitude,
    .PlaceId = "df51dec6f4ee2b2c",  ' As defined by Twitter
    .PossiblySensitive = True,      ' As defined by Twitter (nudity, violence, or medical procedures)
    .TrimUser = True
}
Await TwitterService.Instance.TweetStatusAsync(status)

' Post a tweet with a picture
Await TwitterService.Instance.TweetStatusAsync(TweetText.Text, stream)
Await TwitterService.Instance.TweetStatusAsync(status, stream)

' Search for a specific tag
ListView.ItemsSource = Await TwitterService.Instance.SearchAsync(TagText.Text, 50)

' Open a connection with the stream service in order to receive live tweets and events
ListView.ItemsSource = _tweets
Await TwitterService.Instance.StartUserStreamAsync(
    Async Sub(tweet)
        Await Dispatcher.RunAsync(
        CoreDispatcherPriority.Normal,
        Sub()
            If tweet IsNot Nothing Then
                _tweets.Insert(0, tweet)
            End If
        End Sub)
    End Sub)

' Stop receiving live tweets and events
TwitterService.Instance.StopUserStream()

타임라인에 게시가 표시되지 않습니다.

Twitter 앱 모델은 읽기 전용 애플리케이션을 허용합니다. 앱이 Readonly로 태그가 지정되었지만 게시를 시도하는 경우 오류가 반환되지 않습니다. 게시물이 서비스에 의해 사라졌습니다.

앱에서 게시하고 타임라인에 표시되지 않는 경우 앱 페이지의 사용 권한 탭을 확인합니다. 해당 탭에서 읽기 및 쓰기 를 선택해야 합니다.

비 UWP 플랫폼에서 서비스 사용

이 서비스에는 기본 제공 UWP 및 .NET Framework 지원이 있습니다. UWP 및 .NET Framework 플랫폼 외부에서 서비스를 사용하려면 일부 인터페이스를 구현해야 합니다. 이러한 인터페이스는 IAuthenticationBroker, IPasswordManager 및 IStorageManager입니다.

IAuthenticationBroker

IAuthenticationBroker에는 Authenticate 메서드만 있습니다. 이 메서드는 API를 사용하여 인증하는 데 사용할 요청 URI 및 콜백 URI를 받습니다. 이 메서드는 서비스에 인증 결과를 알려주는 AuthenticationResult를 반환합니다.

IPasswordManager

IPasswordManager를 사용하면 서비스에서 암호를 관리할 수 있습니다. 구현해야 하는 메서드는 Get, Store 및 Remove입니다.

Get 메서드는 문자열 키를 받고 PasswordCredential을 반환합니다.

Store 메서드는 문자열 리소스와 PasswordCredential을 받습니다.

Remove 메서드는 문자열 키를 받습니다.

IStorageManager

IStorageManager를 사용하면 서비스에서 애플리케이션 데이터를 저장할 수 있습니다. 구현해야 하는 메서드는 Get 및 Set입니다.

Get 메서드는 문자열 키를 받고 저장된 문자열을 반환합니다.

Set 메서드는 문자열 키와 문자열 값을 받습니다.

ISignatureManager

마지막으로 ISignatureManager는 OAuth 요청에 서명하는 GetSignature 메서드를 제공합니다. 이 메서드는 baseString, 비밀 문자열, 그리고 append 불리언을 받습니다. 그 대가로 서명된 baseString을 받게 됩니다. 부울 추가가 true인 경우 마지막 문자열은 끝에 있습니다 &amp .

도구 키트에는 UWP에 대한 각 구현이 있습니다. UwpAuthenticationBroker, UwpPasswordManager, UwpStorageManager 및 UwpSignatureManager로 찾을 수 있습니다.

샘플 프로젝트

Twitter 서비스 샘플 페이지 원본입니다. Windows 커뮤니티 도구 키트 샘플 앱에서 이 동작을 확인할 수 있습니다.

요구 사항

디바이스 패밀리 유니버설, 10.0.16299.0 이상
네임스페이스 Microsoft.Toolkit.Uwp.Services
NuGet 패키지 Microsoft.Toolkit.Uwp.Services

API