在其API Vimeo工程师声称我们应该能够在没有访问令牌的情况下进行搜索,我花了好几个小时而不幸的是无法让它工作,我不确定我做错了什么,所以如果你做的话请帮忙这之前.
OAuthService service = new ServiceBuilder().provider(VimeoApi.class).apiKey(consumerString).apiSecret(consumerSecret).build();
OAuthRequest myrequest = new OAuthRequest(Verb.GET,"http://vimeo.com/api/rest/v2format=json&method=vimeo.videos.search&query=fun");
Token mytoken = new Token("", consumerSecret);
service.signRequest(mytoken, myrequest);
Response response = myrequest.send();
Run Code Online (Sandbox Code Playgroud)
谢谢
我对 Oauth 很陌生,但需要学习如何在 Java 中执行此操作,以便我们可以对 REST 请求进行身份验证。这是我到目前为止所得到的。
经过一番阅读后,我决定尝试ScribeJava。我制作了一个自定义 API 来实现DefaultApi10a并指向我们的端点。我像这样设置服务:
final OAuth10aService service = new ServiceBuilder()
.apiKey("key")
.apiSecret("secret")
.build(TestApi.instance());
Run Code Online (Sandbox Code Playgroud)
这不起作用。经过大量挖掘后,似乎因为我们使用的是自签名证书,所以我无法访问远程主机。我收到一条错误消息,表示连接到远程服务时出现问题。ScribeJava 似乎没有办法禁用使用自签名证书的验证。
由于我们希望能够使用请求上的授权标头进行身份验证,因此我将如何使用 Java 库生成标头部分?我环顾四周,没有发现任何东西。
作为参考,我们已经使用 Python 成功进行了良好的 Oauth REST 调用,如下所示:
headeroauth = OAuth1(Oauth1Key, Oauth1Secret,
signature_type='auth_header')
myResponse = requests.get("endpoint_here", auth=headeroauth, verify=False)
Run Code Online (Sandbox Code Playgroud)
关于如何使用 Java 完成同样的事情有什么建议吗?
我从Microsoft Graph API收到的错误是
error = {
"code": "BadRequest",
"innerError": {
"date": "2017-04-10T19:37:08",
"request-id": "973641dd-b150-4406-9f3b-fbcf6f7e5aa1"
},
"message": "The MIME type 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' requires a '/' character between type and subtype, such as 'text/plain'."
}
Run Code Online (Sandbox Code Playgroud)
使用POSTman时,我可以从端点https://graph.microsoft.com/v1.0/me/contacts成功获取信息,但是转到scribe-java库OAuthRequest时,我收到此错误。
我的请求将转到带有2个标题的URL https://graph.microsoft.com/v1.0/me/contacts。授权->承载[令牌]
内容类型-> application / json
我正在使用scribe制作一个支持oauth的应用程序.我没有发现Twitter的问题,但使用Facebook时我有问题...
这是在twitter oauth上运行的代码
OAuthService s = /* ... Facebook oauth init ... */
final Token requestToken = s.getRequestToken();
final String authURL = s.getAuthorizationUrl(requestToken);
Run Code Online (Sandbox Code Playgroud)
它在第二行给出了一个错误:
12-20 10:01:31.475: E/AndroidRuntime(5405): java.lang.UnsupportedOperationException: Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there
12-20 10:01:31.475: E/AndroidRuntime(5405): at org.scribe.oauth.OAuth20ServiceImpl.getRequestToken(OAuth20ServiceImpl.java:45)
Run Code Online (Sandbox Code Playgroud)
我知道它说我可能会使用getAuthorizationUrl ...但是我必须传递一个requestToken ...
请你帮助我好吗?
对Scribe和Facebook有任何帮助都会有所帮助
谢谢!
PS:Windows Live也存在同样的问题!=(
编辑:
我一直在查看Scribe库的源代码,我找到了一些东西
在这里,我们可以看到我可以使用null参数调用getAuthorizationUrl(...),因为它不使用它....但我认为prioblem现在是配置未填充...
这是我如何初始化Facebook服务:
new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey(....)
.apiSecret(....)
.scope("email,offline_access")
.callback("oauth://facebook")
.build();
Run Code Online (Sandbox Code Playgroud)
它是否正确?
谢谢!
我正在AppEngine开发一个应用程序并试验OAuth,我遇到了scribe-java [1],这似乎很简单,并且我打算使用相同的东西.
它会在appengine中播放(即使用给定的JRE白名单)吗?任何人成功使用它?我没有看到它在[2]中列出,并且谷歌搜索同样没有给我直接的答案.
感谢您的回复.
[1] https://github.com/fernandezpablo85/scribe-java
[2] http://code.google.com/p/googleappengine/wiki/WillItPlayInJava
我目前正在使用Scribe成功验证并向Twitter发布非媒体消息.这很容易,我发布的第一条测试消息没有任何问题.但是,我似乎根本无法发布照片.我已经回顾了Twitter在这里和这里发布媒体的说明.
Github上的所有Scribe/Twitter示例都是针对非媒体帖子的.如果有人能提供一个如何通过Scribe将照片发布到Twitter的可靠示例,那就太棒了!
我特别有两个问题:
1)我的帖子不会通过授权.我试过模仿上面发布的例子,但似乎没什么用.
2)当将图像从byte []转换为字符串时,我似乎只能在它停止之前获得4113个字符.根据我的理解,这远远低于String可以容纳的字符数.
这是我如何提取照片:
// GET PHOTO FILE AND FILE LENGTH
// INSTANTIATE UPLOAD VARIABLE WITH FILE LENGTH
File file = new File(photo); // ("photo" is a string path to the photo file)
int fileLength = (int) file.length();
uploadFile = new byte[fileLength];
// CREATE BUFFER INPUT STREAM OF FILE
BufferedInputStream inputStream;
try {inputStream = new BufferedInputStream(new FileInputStream(file));}
catch (FileNotFoundException e)
{
inputStream = null;
Toast.makeText(this.getApplicationContext(), "Buffer input stream error!", Toast.LENGTH_LONG).show();
}
// READ …Run Code Online (Sandbox Code Playgroud) 我正在测试facebook验证的抄写员.在对Facebook进行身份验证时,我没有收到oauth_verifier - 如果这是不正确的行为,请告诉我.对于facebook auth,我应该如何创建验证程序以创建OAuthRequest.
redirect_uri=http%3A%2F%2Flocalhost%2Foauth%2Ffacebook
Run Code Online (Sandbox Code Playgroud)
谢谢