gpt4 book ai didi

c# - 如何使用linqtotwitter V3

转载 作者:太空狗 更新时间:2023-10-29 21:17:35 26 4
gpt4 key购买 nike

好吧,我最近升级到 V3,但它破坏了很多东西

我该如何解决这些问题?

1 号:

这不再有效,因为没有像 Credentials 和 InMemoryCredentials 这样的定义

var auth = new SingleUserAuthorizer
{
Credentials = new InMemoryCredentials
{
ConsumerKey = srtwitterConsumerKey,
ConsumerSecret = srtwitterConsumerSecret,
OAuthToken = srtwitterOAuthToken,
AccessToken = srtwitterAccessToken
}
};

第 2 点:不再有 GetFileBytes 的定义

var mediaItems =
new List<Media>
{
new Media
{
Data = Utilities.GetFileBytes(srImageUrl),
FileName = srTweet.Split(' ')[0]+".jpg",
ContentType = MediaContentType.Jpeg
}
};

第 3 点:TweetWithMedia 没有定义

var tweet = twitterContext.TweetWithMedia(srTweet, false, mediaItems);

第 4 点:没有定义 UpdateStatus

var tweet = twitterContext.UpdateStatus(srTweet);

第 5 点:没有 CreateFavorite 的定义

var vrResult = twitterContext.CreateFavorite(srRetweetId);

而且我找不到 V3 的任何示例

它总是说 twitterCtx 但你如何首先获得 twitterCtx

最佳答案

LINQ to Twitter v3.0 是异步的,这意味着命名约定以及调用某些代码的方式都发生了变化。一些更改是为了一致性或改进跨平台操作。它还是一个可移植类库 (PCL),允许它在多个平台上运行。以下是您的一些问题的简要概述:

  1. 试试这个:

        var auth = new SingleUserAuthorizer
    {
    CredentialStore = new SingleUserInMemoryCredentialStore
    {
    ConsumerKey = ConfigurationManager.AppSettings["consumerKey"],
    ConsumerSecret = ConfigurationManager.AppSettings["consumerSecret"],
    AccessToken = ConfigurationManager.AppSettings["accessToken"],
    AccessTokenSecret = ConfigurationManager.AppSettings["accessTokenSecret"]
    }
    };
  2. 以前的 GetFileBytes 实现存在跨平台问题,因此我将其删除。您必须编写自己的代码来读取文件的字节。这是旧的实现:

    /// <summary>
    /// Reads a file into a byte array
    /// </summary>
    /// <param name="filePath">Full path of file to read.</param>
    /// <returns>Byte array with file contents.</returns>
    public static byte[] GetFileBytes(string filePath)
    {
    byte[] fileBytes = null;

    using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
    using (var memStr = new MemoryStream())
    {
    byte[] buffer = new byte[4096];
    memStr.Position = 0;
    int bytesRead = 0;

    while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
    {
    memStr.Write(buffer, 0, bytesRead);
    }

    memStr.Position = 0;
    fileBytes = memStr.GetBuffer();
    }

    return fileBytes;
    }
  3. 这是 TweetWithMediaAsync 重载之一:

        Status tweet = await twitterCtx.TweetWithMediaAsync(
    status, PossiblySensitive, Latitude, Longitude,
    PlaceID, DisplayCoordinates, imageBytes);
  4. 现在称为 TweetAsync:

            var tweet = await twitterCtx.TweetAsync(status);
  5. 下面是 CreateFavoriteAsync 的示例:

        var status = await twitterCtx.CreateFavoriteAsync(401033367283453953ul);
  6. 您必须实例化 TwitterContext - 这是一个示例:

        var twitterCtx = new TwitterContext(auth);

有关更多信息,您可以下载源代码并查看多种技术的工作示例。示例项目名称具有 Linq2TwitterDemos_ 前缀:

https://linqtotwitter.codeplex.com/SourceControl/latest#ReadMe.txt

每个 API 调用都有文档记录,以及有关 LINQ to Twitter 其他方面的文档:

https://linqtotwitter.codeplex.com/documentation

关于c# - 如何使用linqtotwitter V3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com