↧
Created Release: Tweetinvi 1.0 (Jul 05, 2016)
↧
Released: Tweetinvi 1.1 (Sep 29, 2016)
Here comes a new version of Tweetinvi!
Learn more on github
Main Features
- .NETCore compatibility
- Json serialization and deserialization
- Enhanced support of Extended Tweets
- Improvements of the Languages support
Learn more on github
↧
↧
Created Release: Tweetinvi 1.1 (Sep 29, 2016)
Here comes a new version of Tweetinvi!
Learn more on github
Main Features
- .NETCore compatibility
- Json serialization and deserialization
- Enhanced support of Extended Tweets
- Improvements of the Languages support
Learn more on github
↧
Created Unassigned: Problem - Search Tweets [2672]
I have a problem using this library, when I try to search all the tweets from some specific location it works, but if I add other searchparameter like filter by popular then return nothing, no tweets found when I try to get the popular tweets in some location defined.
Anyone know if this is a Twitter limitation or issue of the Tweetinvi??
Thanks!!
Alex
Anyone know if this is a Twitter limitation or issue of the Tweetinvi??
Thanks!!
Alex
↧
Released: Tweetinvi 1.2 (Dec 14, 2016)
Breaking Changes
- IMPORTANT : Please read if you use Tweetinvi in multiple threads with multiple credentials.** Thread credentials has slightly changed to fix a bug that resulted in the incorrect credentials to be picked in some cases. Read more in the `Thread Credentials` section
- Only the Extended Tweets are now available in the `ITweet.Entities` property. as opposed to before when the property was returning both Extended Entities AND Legacy Entities
Nuget
With the addition of .NETCore to nuget targets for the library, some people started to experience problems regarding the dependencies that were added based on their platforms specifically for Xamarin and Mono. We are pleased to announce that this has been fixed and in addition projects with classical .NET Framework will be able to use `Autofac >= 3.5.2` again.Streams
`TweetEventArgs` now return an `ITweet` and its associated `json` to simplify the life of developers!Custom Accept Headers
To improve the flexibility of Tweetinvi, `ITwitterQuery` now provide a new property `AcceptHeaders` that you can update to customize the Accept headers that will be used to execute the HttpRequest.Messages
You can now access private message entities via the `IMessage.Entities` property.Upload
A new method allow you to rely on Tweetinvi to synchronously wait for a media to be uploaded and processed by the Twitter Upload API.var binary = File.ReadAllBytes(@"C:\Users\linvi\Pictures\sample_video.mp4"); var media = Upload.UploadVideo(binary, mediaCategory: "amplify_video"); // The media cannot be used for the moment.var mediaWithMetadata = Upload.WaitForMediaProcessingToGetAllMetadata(media); // Now we can access the media's metadata.var videoType = mediaWithMetadata.UploadedMediaInfo.VideoDetails.VideoType;
Thread Credentials
This topic is about threads and is slightly more technical than usual, please read attentively.You can be affected by this change...
- If you run an application with multiple credentials.
- If you use these different credentials on multiple threads.
- If you use object instances methods (ITweet, IUser, IMessage...)
- If object instances created in a thread `T1` are being used to invoke methods from another thread `T2` (`T1` and `T2` having a different set of credentials)
Technical Explanation
Most developers uses `Auth.SetUserCredentials` in order to set the credentials used within the current running thread. Any object (tweet, user, message...) created in the context of this thread are being constructed with injected controllers/factories/helpers.Before version 1.2** a newly created object was storing a `controller` that helped him execute any operation related with this object type (e.g. ITweet objects are capable of invoking a `PublishRetweet()` method).
The problem was that the `controller` within the newly object had an indirect reference to the credentials of the thread used for the creation of the object.
Therefore invoking `tweet.PublishRetweet` in a thread `T2` different from the constructor thread `T1`, incorrectly resulted in the credentials of `T1` to be used to run `PublishRetweet` whilst developers would have expected the credentials of `T2` to be used to run the instance method.
In version 1.2** `PublishRetweet` correctly uses the running thread T2 credentials.
Some code to explain
ITweet tweet = null; var T1 = new Thread(() => { // We initialize the T1 credentials Auth.SetUserCredentials(creds1); // We have a tweet that was created with T1 tweet = Tweet.PublishTweet("hello"); }); T1.Start(); // The tweet variable is now an instance of ITweet T1.Join(); // We initialize the credentials of the main thread T2 Auth.SetUserCredentials(creds2); // Here is where the bug happened before 1.2// PublishRetweet was running with creds1 (T1) instead of creds2// In version 1.2, this operation will be executed with creds2 tweet.PublishRetweet();
Other
- Added a new field `PublishTweetParameters.ExcludeReplyUserIds`
- Autofac >= 3.5.2 dependency is back
- Added support of 308 status code for TON Api
- `UploadProcessingInfo` is now an enum that help developers to know the current stage of an upload.
- Extended Tweets have added new HTTP error codes. They are now supported by the library.
Bug Fixes
- Extended Tweet suffix length has been updated to properly reflect the value from Twitter
- QuotedTweet throwing an error for being > 140 characters with Extended Tweets
↧
↧
Created Release: Tweetinvi 1.2 (Dec 14, 2016)
Breaking Changes
- IMPORTANT : Please read if you use Tweetinvi in multiple threads with multiple credentials.** Thread credentials has slightly changed to fix a bug that resulted in the incorrect credentials to be picked in some cases. Read more in the `Thread Credentials` section
- Only the Extended Tweets are now available in the `ITweet.Entities` property. as opposed to before when the property was returning both Extended Entities AND Legacy Entities
Nuget
With the addition of .NETCore to nuget targets for the library, some people started to experience problems regarding the dependencies that were added based on their platforms specifically for Xamarin and Mono. We are pleased to announce that this has been fixed and in addition projects with classical .NET Framework will be able to use `Autofac >= 3.5.2` again.Streams
`TweetEventArgs` now return an `ITweet` and its associated `json` to simplify the life of developers!Custom Accept Headers
To improve the flexibility of Tweetinvi, `ITwitterQuery` now provide a new property `AcceptHeaders` that you can update to customize the Accept headers that will be used to execute the HttpRequest.Messages
You can now access private message entities via the `IMessage.Entities` property.Upload
A new method allow you to rely on Tweetinvi to synchronously wait for a media to be uploaded and processed by the Twitter Upload API.var binary = File.ReadAllBytes(@"C:\Users\linvi\Pictures\sample_video.mp4"); var media = Upload.UploadVideo(binary, mediaCategory: "amplify_video"); // The media cannot be used for the moment.var mediaWithMetadata = Upload.WaitForMediaProcessingToGetAllMetadata(media); // Now we can access the media's metadata.var videoType = mediaWithMetadata.UploadedMediaInfo.VideoDetails.VideoType;
Thread Credentials
This topic is about threads and is slightly more technical than usual, please read attentively.You can be affected by this change...
- If you run an application with multiple credentials.
- If you use these different credentials on multiple threads.
- If you use object instances methods (ITweet, IUser, IMessage...)
- If object instances created in a thread `T1` are being used to invoke methods from another thread `T2` (`T1` and `T2` having a different set of credentials)
Technical Explanation
Most developers uses `Auth.SetUserCredentials` in order to set the credentials used within the current running thread. Any object (tweet, user, message...) created in the context of this thread are being constructed with injected controllers/factories/helpers.Before version 1.2** a newly created object was storing a `controller` that helped him execute any operation related with this object type (e.g. ITweet objects are capable of invoking a `PublishRetweet()` method).
The problem was that the `controller` within the newly object had an indirect reference to the credentials of the thread used for the creation of the object.
Therefore invoking `tweet.PublishRetweet` in a thread `T2` different from the constructor thread `T1`, incorrectly resulted in the credentials of `T1` to be used to run `PublishRetweet` whilst developers would have expected the credentials of `T2` to be used to run the instance method.
In version 1.2** `PublishRetweet` correctly uses the running thread T2 credentials.
Some code to explain
ITweet tweet = null; var T1 = new Thread(() => { // We initialize the T1 credentials Auth.SetUserCredentials(creds1); // We have a tweet that was created with T1 tweet = Tweet.PublishTweet("hello"); }); T1.Start(); // The tweet variable is now an instance of ITweet T1.Join(); // We initialize the credentials of the main thread T2 Auth.SetUserCredentials(creds2); // Here is where the bug happened before 1.2// PublishRetweet was running with creds1 (T1) instead of creds2// In version 1.2, this operation will be executed with creds2 tweet.PublishRetweet();
Other
- Added a new field `PublishTweetParameters.ExcludeReplyUserIds`
- Autofac >= 3.5.2 dependency is back
- Added support of 308 status code for TON Api
- `UploadProcessingInfo` is now an enum that help developers to know the current stage of an upload.
- Extended Tweets have added new HTTP error codes. They are now supported by the library.
Bug Fixes
- Extended Tweet suffix length has been updated to properly reflect the value from Twitter
- QuotedTweet throwing an error for being > 140 characters with Extended Tweets
↧