- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将视频上传到 vimeo,我了解您需要 Ticket_id 才能上传。
我的想法是,我不知道如何使用 scribe 来获取此 Ticket_id。有谁有如何执行此操作的示例吗?
提前致谢。
当我使用时:
OAuthRequest request = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
request.addQuerystringParameter("method", "vimeo.videos.upload.getTicket");
这会导致:
<err code="401" expl="The consumer key passed was not valid." msg="Invalid consumer key"/>
当我使用方法时:
request.addQuerystringParameter("method", "vimeo.videos.upload.getQuota");
一切正常。我尝试在 vimeo.videos.upload.getQuota 方法中放入一些假 api key 。这也导致了无效的 key 。所以它不像方法 vimeo.videos.upload.getQuota 不需要 api key 。事实上,它确实有效,如果您不提供有效的 key ,它将无法工作。不知何故,当使用适用于方法 getQuota 的相同 api key 调用方法 vimeo.videos.upload.getTicket 时,我得到响应:
<err code="401" expl="The consumer key passed was not valid." msg="Invalid consumer key"/>
带有假 API key 的完整代码:
public class VimeoServiceConcept {
public static void main(String[] args) {
String apikey="api key";
String apisecret="secret";
String accessToken="access token";
String accessTokenSecret="access token secret";
OAuthService service = new ServiceBuilder()
.provider(VimeoApi.class)
.apiKey(apikey)
.apiSecret(apisecret)
.build();
Token token = new Token(accessToken, accessTokenSecret);
OAuthRequest request = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
// request.addQuerystringParameter("method", "vimeo.videos.upload.getQuota");
request.addQuerystringParameter("format", "xml");
request.addQuerystringParameter("method", "vimeo.videos.upload.getTicket");
request.addQuerystringParameter("upload_method", "post");
service.signRequest(token, request);
System.out.println(request.getCompleteUrl());
Response response = request.send();
System.out.println("Got it! Lets see what we found...");
System.out.println(response.getHeader("code"));
System.out.println(response.getCode());
System.out.println(response.getBody());
}
}
最佳答案
获得配额后尝试获取门票。我从未尝试过先在没有配额的情况下获取门票,因为他们的文档明确指出您需要在获取门票之前检查配额。看来您只是注释掉了未测试的内容。试试这个:
public class VimeoServiceConcept {
public static void main(String[] args) {
String apikey="api key";
String apisecret="secret";
String accessToken="access token";
String accessTokenSecret="access token secret";
OAuthService service = new ServiceBuilder().provider(VimeoApi.class).apiKey(apiKey).apiSecret(apiSecret).build();
OAuthRequest request;
Response response;
accessToken = new Token("your_token", "your_tokens_secret");
accessToken = checkToken(vimeoAPIURL, accessToken, service);
if (accessToken == null) {
return;
}
// Get Quota
request = new OAuthRequest(Verb.GET, vimeoAPIURL);
request.addQuerystringParameter("method", "vimeo.videos.upload.getQuota");
signAndSendToVimeo(request, "getQuota", true);
// Get Ticket
request = new OAuthRequest(Verb.GET, vimeoAPIURL);
request.addQuerystringParameter("method", "vimeo.videos.upload.getTicket");
request.addQuerystringParameter("upload_method", "streaming");
response = signAndSendToVimeo(request, "getTicket", true);
//... the rest of your code...
}
}
这是 checkToken:
/**
* Checks the token to make sure it's still valid. If not, it pops up a dialog asking the user to
* authenticate.
*/
private static Token checkToken(String vimeoAPIURL, Token vimeoToken, OAuthService vimeoService) {
if (vimeoToken == null) {
vimeoToken = getNewToken(vimeoService);
} else {
OAuthRequest request = new OAuthRequest(Verb.GET, vimeoAPIURL);
request.addQuerystringParameter("method", "vimeo.oauth.checkAccessToken");
Response response = signAndSendToVimeo(request, "checkAccessToken", true);
if (response.isSuccessful()
&& (response.getCode() != 200 || response.getBody().contains("<err code=\"302\"")
|| response.getBody().contains("<err code=\"401\""))) {
vimeoToken = getNewToken(vimeoService);
}
}
return vimeoToken;
}
这是 getNewToken:
/**
* Gets authorization URL, pops up a dialog asking the user to authenticate with the url and the user
* returns the authorization code
*
* @param service
* @return
*/
private static Token getNewToken(OAuthService service) {
// Obtain the Authorization URL
Token requestToken = service.getRequestToken();
String authorizationUrl = service.getAuthorizationUrl(requestToken);
do {
String code = JOptionPane.showInputDialog("The token for the account (whatever)" + newline
+ "is either not set or is no longer valid." + newline
+ "Please go to the URL below and authorize this application." + newline
+ "Paste the code you're given on top of the URL here and click \'OK\'" + newline
+ "(click the 'x' or input the letter 'q' to cancel." + newline
+ "If you input an invalid code, I'll keep popping up).", authorizationUrl + "&permission=delete");
if (code == null) {
return null;
}
Verifier verifier = new Verifier(code);
// Trade the Request Token and Verfier for the Access Token
System.out.println("Trading the Request Token for an Access Token...");
try {
Token token = service.getAccessToken(requestToken, verifier);
System.out.println(token); //Use this output to copy the token into your code so you don't have to do this over and over.
return token;
} catch (OAuthException ex) {
int choice = JOptionPane.showConfirmDialog(null, "There was an OAuthException" + newline
+ ex + newline
+ "Would you like to try again?", "OAuthException", JOptionPane.YES_NO_OPTION);
if (choice == JOptionPane.NO_OPTION) {
break;
}
}
} while (true);
return null;
}
这里是signAndSend:
/**
* Signs the request and sends it. Returns the response.
*
* @param request
* @return response
*/
public static Response signAndSendToVimeo(OAuthRequest request, String description, boolean printBody) throws org.scribe.exceptions.OAuthException {
System.out.println(newline + newline
+ "Signing " + description + " request:"
+ ((printBody && !request.getBodyContents().isEmpty()) ? newline + "\tBody Contents:" + request.getBodyContents() : "")
+ ((!request.getHeaders().isEmpty()) ? newline + "\tHeaders: " + request.getHeaders() : ""));
service.signRequest(accessToken, request);
printRequest(request, description);
Response response = request.send();
printResponse(response, description, printBody);
return response;
}
关于java - 如何使用 scribe 在 vimeo api 上获取 Ticket_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10615293/
这可能是一个菜鸟错误,但我似乎找不到它,已经尝试了两天。我正在尝试使用 grails-oauth-scribe 插件在我的 grails 3 应用程序中集成一个简单的 facebook 登录,该插件利
我见过的抄写员示例中没有一个真正提到获取日志/日志文件并将它们发送给抄写员的最佳方式。我可以配置一个 logrotate 脚本,它有一个 postrotate 部分,该部分“cats”旋转文件以进行抄
嗨,我对 Scribe 还很陌生。我从以下内容了解到它正在请求发布状态。 private static final String PROTECTED_RESOURCE_URL = "https://a
我可以使用 scribe 通过流 API 获取带有特定主题标签的推文吗?我在 java 中工作,我想在 appengine 项目中使用 scribe。是否可以?我尝试以下代码: OAuthSe
似乎是抄写员中的一个错误。它使用 java.net.HttpURLConnection 仅限于 /* valid HTTP methods */ private static final String
我正在尝试使用 scribe 进行 Twitter 授权。当我尝试时 requestToken = service.getRequestToken() 我收到以下错误 14:10:11,305 ERR
我正在开发一个 Android 应用程序,我已经集成了 Scribe 库,以便通过 Magento 与 OAuth1.0 建立 http 连接。我的问题是我需要将带有参数的请求发送到正文但没有 key
我问的是新实验室功能“Google Scribe”。这是链接:http://scribe.googlelabs.com/ 我对后端和前端感兴趣,但主要是后端。我想用非常具体的数据集(来 self 自己
本文整理了Java中org.scribe.up.provider.impl.YahooProvider类的一些代码示例,展示了YahooProvider类的具体用法。这些代码示例主要来源于Github
本文整理了Java中org.scribe.up.profile.yahoo.YahooEmail类的一些代码示例,展示了YahooEmail类的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中org.scribe.up.profile.yahoo.YahooImage类的一些代码示例,展示了YahooImage类的具体用法。这些代码示例主要来源于Github/Stack
如标题所述 如果输入是一个文件,oauthRequest.addBodyParameter(key, value) 似乎不能很好地工作 我尝试执行以下操作以将文件强制转换为字符串,但无济于事: Fil
我正在使用 scribe 制作一个支持 oauth 的应用程序。我没有发现使用 Twitter 的问题,但是使用 Facebook 时我遇到了问题... 这是在 twitter oauth 上运行的代
我想从 LinkedIn API 获取数据,因为我正在使用 Scribe 库。所有请求都按预期提供数据,但当我尝试 URL 中的两个方面时,scribe 无法从 LinkedIn API 获取数据。如
我在尝试编译 GWT 项目时遇到此错误: No source code is available for type org.scribe.oauth.OAuthService; did you for
我正在使用 Hadoop,但为了记录我需要一些东西。但是我不知道在 Scribe 和 Chukwa 之间登录系统哪个更好。你们能告诉我吗?如果有任何易于与 Hadoop 混合的替代方案,请告诉我。 最
有没有一种方法可以通过 API 使用 Google 的 Scribe 自动完成服务(在 Google Labs 中)——你给它一个词或几个词,它就会完成它? 最佳答案 据我所知,Google Scri
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试使用新的 Grails oAuth 2.0 插件来使用 LinkedIn 资源。使用我的代码,我可以访问 LinkedIn 授权页面,在其中我可以授予我的应用程序访问我的 LinkedIn
我正在测试 facebook 身份验证的抄写员。在针对 Facebook 进行身份验证时,我没有收到 oauth_verifier - 请告诉我这是否是不正确的行为。对于 facebook auth,
我是一名优秀的程序员,十分优秀!