- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试将此功能添加到我正在开发的 C# Windows 应用程序中,以将图像上传到 Imgur。
很遗憾,它必须是 Imgur,因为该网站是必需的。
问题是我能找到的任何 C# 示例代码都是旧的,而且似乎不能与他们的第 3 版 API 一起使用。
所以我想知道是否有在该领域具有专业知识的人可以帮助我。
我更喜欢使用 OAuth 上传,而不是匿名选项,但如果需要,可以将后者用作示例。
编辑:
我特别不明白的一个部分是,如何在桌面应用程序中完成授权步骤。授权步骤需要打开网页,询问用户是否允许应用程序使用他们的数据。
如何为基于桌面的应用执行此操作?
最佳答案
在开始之前,您需要注册您的应用程序以接收客户端 ID 和客户端密码。我猜你已经意识到了。详细信息可以上官方Imgur API Documentation .
关于身份验证,您是对的,用户必须访问网页并在那里获取并授权您的应用程序。您可以在您的应用程序中嵌入一些 Webbrowser 控件,或者只是指示用户浏览网页。
这里有一些未经测试的代码,只需稍作修改即可使用。
class Program
{
const string ClientId = "abcdef123";
const string ClientSecret = "Secret";
static void Main(string[] args)
{
string Pin = GetPin(ClientId, ClientSecret);
string Tokens = GetToken(ClientId, ClientSecret, Pin);
// Updoad Images or whatever :)
}
public static string GetPin(string clientId, string clientSecret)
{
string OAuthUrlTemplate = "https://api.imgur.com/oauth2/authorize?client_id={0}&response_type={1}&state={2}";
string RequestUrl = String.Format(OAuthUrlTemplate, clientId, "pin", "whatever");
string Pin = String.Empty;
// Promt the user to browse to that URL or show the Webpage in your application
// ...
return Pin;
}
public static ImgurToken GetToken(string clientId, string clientSecret, string pin)
{
string Url = "https://api.imgur.com/oauth2/token/";
string DataTemplate = "client_id={0}&client_secret={1}&grant_type=pin&pin={2}";
string Data = String.Format(DataTemplate, clientId, clientSecret, pin);
using(WebClient Client = new WebClient())
{
string ApiResponse = Client.UploadString(Url, Data);
// Use some random JSON Parser, you´ll get access_token and refresh_token
var Deserializer = new JavaScriptSerializer();
var Response = Deserializer.DeserializeObject(ApiResponse) as Dictionary<string, object>;
return new ImgurToken()
{
AccessToken = Convert.ToString(Response["access_token"]),
RefreshToken = Convert.ToString(Response["refresh_token"])
};
}
}
}
public class ImgurToken
{
public string AccessToken { get; set; }
public string RefreshToken { get; set; }
}
关于c# - Imgur API 版本 3 上传示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16178350/
我正在使用 https://api.imgur.com/3/image无需 从 JavaScript 上传图片oauth . 是否可以使用我的 Client-ID 查看最近上传的图片? 最佳答案 不幸
我正在使用 imgur API,我有几个问题,上传 .gif 的大小限制是多少?我到处都读到图片的大小限制是 10Mb,gif 是 20Mb,但是当我尝试使用 API 上传 11Mb 的 gif 时,
如何在 imgur.com 上将图像设置为具有非随机文件名? 当我上传图像时,会为其分配一个随机字符串。 我如何链接到像 username.imgur.com/meaningful_file_name
如何在不让用户对 imgur 进行身份验证的情况下将用户图像上传到 imgur,即,我想代表应用程序(订阅免费增值计划)而不是用户上传。我遇到了 imgur 的 oauth api,但我想我不想要那个
作为 Reddit 机器人的一部分,我正在使用 Imgur API 将图像上传到相册。但是,当我尝试上传 MP4 文件时出现错误:“文件类型无效 (1)”。使用该网站上传完全相同的 MP4 文件效果很
我在尝试让 Scribe 与 Imgur 交互时遇到了困难。我不断得到 java.security.cert.CertificateException:找不到与 api.imgur.com 匹配的主题
我目前正忙于创建一个可以放置内容等的网站。 当我想添加图像时,我可以从桌面或使用 url 上传它。我知道有一些 api 可以使用,但我已经联系了 IMGUR,但他们仍然没有回复。我想知道;当我通过自己
我目前正忙于创建一个可以放置内容等的网站。 当我想添加图像时,我可以从桌面或使用 url 上传它。我知道有一些 api 可以使用,但我已经联系了 IMGUR,但他们仍然没有回复。我想知道;当我通过自己
我一直在自学如何使用 react 和 meteor ,我正在学习 Udemy 的类(class)。我们要做的第一个项目需要 imgur 画廊端点,即:https://api.imgur.com/3/g
我正在使用 python 尝试从 imgur 下载一些图像。我一直在使用 urrlib 和 urllib.retrieve 但您需要在保存文件时指定扩展名。对于大多数帖子来说这不是问题,因为链接中有例
我已在 HTML 中创建了此代码 Picture Uploading... 这是我的 imguruploads.js /* Imgur Upload Script */ (function (
我有一个 image在图片上。此图像显示在除本地主机之外的任何网站上。 可能是什么问题? Error: GET http://i.imgur.com/CTIZUG1t.jpg 403 (Forbid
from oauth_hook import OAuthHook import requests, json OAuthHook.consumer_key = "KEYHERE" OAuthHook.
我确定这篇文章将被 hive 关闭。如果您知道,请发布答案。 只是想知道 imgur.com 是否使用数据库或文件系统来存储他们所有的图像。 我做了一些研究 http://imgur.com/blog
这就是我现在拥有的,它适用于单个图像。 curl -vH "Authorization: Client-ID 3e7a4deb7ac67da" -F image=@/path/to/image htt
我有一个关于 imgur 的问题api。 我想使用 imgur api 为我的网站创建一个图库,但是如何创建一个上传到 imgur 服务器的文件上传器? 这是我创建的: base64_encode(
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我正在尝试使用 Node.js 和 Express.js 编写一个应用程序(我正在学习免费代码营类(class),如果这是有用的信息),该应用程序接受搜索词并向 Imgur API 发送和查询并报告一
于是就有了这行代码 String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(Base64.encodeB
我可以像这样使用 api 将匿名图像上传到 imgur: public static void UploadImage() { Image image = GetImage(); st
我是一名优秀的程序员,十分优秀!