Skip to content
This repository has been archived by the owner on Mar 14, 2024. It is now read-only.
/ VineSharp Public archive

Wrapper for the undocumented Vine API

License

Notifications You must be signed in to change notification settings

stuisme/VineSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VineSharp

Wrapper for the undocumented Vine API. Since it is undocumented, it is also unsupported and is subject to change. This library is not intended for production use.

https://www.nuget.org/packages/VineSharp/

Getting Started

Install-Package VineSharp

Since Vine does not provide public OAuth for Apps, a username and password are required to obtain a valid token.

var vineClient = new VineClient(Username, Password);

- OR -

var vineClient = new VineClient();
vineClient.SetCredentials(Username, Password);

VineClient will automatically authenticate with the provided credentials when it needs too. If you would like to store the token for later use, you can call VineClient.Authenticate().

*VineClient.SetCredentials will cuase the current authenticated user to be reset.

Base Response

The Vine API wraps all responses with a standard wrapper.

{
  "code": "",
  "success": true,
  "error": "",
  "data": {...}
}

Most calls are also wrapped with a standard paging wrapper.

{
  "code": "",
  "success": true,
  "error": "",
  "data": {
    "count": 499,
    "size": 20,
    "anchorStr": "1234567890",
    "anchor": 1234567890,
    "backAnchor": "9876543210"
    "records": [...]
  }
}

The Basics

All calls to the Vine API are async.

var result = await vineClient.MyProfile();
//result.Data.AvatarUrl

You can navigate through the pages with the optional paging options parameter.

var options = new VinePagingOptions
{
    Size = 5,
    Page = 2,
    Anchor = 123456789
};
var result = await vineClient.TagTimeline("test", options);

foreach(var post in result.Data.Records)
{
    // do something
}

Endpoints Covered

Users

Endpoint Verb Method Comments
users/authenticate POST .Authenticate() Uses form encoded body
users/me GET .MyProfile() Profile
users/profile/{userId} GET .UserProfile(userId) Profile
users/me/followers GET .MyFollowers(pagingOptions) Paged Followers
users/{userId}/followers GET .UserFollowers(userId, pagingOptions) Paged Followers
users/me/following GET .MyFollowing(pagingOptions) Paged Followers
users/{userId}/following GET .UserFollowing(userId, pagingOptions) Paged Followers

Timelines

Endpoint Verb Method Comments
timeline/users/me GET .MyTimeline(pagingOptions) Paged Posts
timelines/users/{userId} GET .UserTimeline(userId, pagingOptions) Paged Posts
timelines/popular GET .PopularTimeline(pagingOptions) Paged Posts
timelines/tags/{tag} GET .TagTimeline(tag, pagingOptions) Paged Posts
timelines/posts/{postId} GET .Post(postId) Paged Posts with only 1 record

Posts

Endpoint Verb Method Comments
posts/{postId}/likes GET .Likes(postId, pagingOptions) Paged Likes
posts/{postId}/likes POST .AddLike(postId) Like Creation
posts/{postId}/likes DELETE .RemovedLike(postId) Empty Data
posts/{postId}/comments GET .Comments(postId, pagingOptions) Paged Comments

Special thanks to https://github.com/starlock/vino for helping me "git" started

About

Wrapper for the undocumented Vine API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages