我无法实现Twitter的[更新个人资料图片]方法。有没有人有任何示例代码可以将图像作为原始multiart数据传递给Twitter API?
答案 0 :(得分:2)
直接使用API非常简单,只需要对api端点执行POST请求,并将图像的base64作为图像查询字符串的值附加。
POST https://api.twitter.com/1.1/account/update_profile_image.json?image=base64data
读取图像文件并将其转换为base64也很简单。
string base64Data = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string url= "https://api.twitter.com/1.1/account/update_profile_image.json?image=" + base64Data
更复杂的部分首先是针对API进行身份验证。假设您已经这样做,上面的代码将满足您的需求。
如果不是,您需要查看库或LinqToTwitter等SDK。维基上有很多例子。
如果您要手动对请求进行编码,请参阅API文档,了解如何构建请求:https://dev.twitter.com/oauth/overview/authorizing-requests
使用Tweetinvi:https://github.com/linvi/tweetinvi/
private class AuthCredentials
{
public string ConsumerKey = "ConsumerKey";
public string ConsumerSecret = "ConsumerSecret";
public string AccessToken = "AccessToken";
public string AccessTokenSecret = "AccessTokenSecret";
}
static void Main(string[] args)
{
var creds = new AuthCredentials();
Auth.SetUserCredentials(creds.ConsumerKey, creds.ConsumerSecret, creds.AccessToken, creds.AccessTokenSecret);
var data = File.ReadAllText("myimage.jpg");
Account.UpdateProfileImage(data);
}
Twitter的API文档包含各种语言的库列表:https://dev.twitter.com/resources/twitter-libraries