أووث فيميو مع الكاتب "مفتاح أبي غير صالح" (رمز الخطأ 100)

StackOverflow https://stackoverflow.com//questions/9705685

  •  14-12-2019
  •  | 
  •  

سؤال

أحاول المصادقة في فيميو باستخدام الكاتب.انها لا تسير على ما يرام.وأظل الحصول على رمز الخطأ 100 مرة أخرى ، لكنه لا يزال يعطيني عنوان ورل إذن وعندما أذهب إليه أنا قادرة على منح الوصول.انها فقط عندما أدخل رمز التفويض في ومحاولة التجارة رمز الطلب لرمز الوصول أنها لا تعمل.أنا باستخدام المثال الفيسبوك والتغيير والتبديل للعمل مع فيميو...أنا لا أعرف حقا ما أفعله هنا.سألت سؤال سابق وقيل أنني بحاجة إلى تضمين أباتشي كومنز الترميز على مسار صفي.حسنا ، لقد أدرجته في متغيرات البيئة الخاصة بي ولم يغير ذلك أي شيء.لذلك أنا فقط إضافته إلى مكتبات بلدي للمشروع والتي يبدو أن يحصل لي خطوة أبعد.الآن ليس لدي أي فكرة عما يجب القيام به من هنا.أنا لا أفهم لماذا أنا الحصول على هذا.وهنا رمز بلدي والإخراج:

public class VimeoTest
{
  private static final String NETWORK_NAME = "Vimeo";
  private static final Token EMPTY_TOKEN = null;

  public static void main(String[] args)
  {
    // Replace these with your own api key and secret
    String apiKey = "MYAPIKEY";
    String apiSecret = "MYAPISECRET";
    OAuthService service = new ServiceBuilder()
                                  .provider(VimeoApi.class)
                                  .apiKey(apiKey)
                                  .apiSecret(apiSecret)
                                  .debug()
                                  .build();
    Scanner in = new Scanner(System.in);

    System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
    System.out.println();
    OAuthRequest orequest = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
    orequest.addQuerystringParameter("method", "vimeo.test.null");
    Response send = orequest.send();
    System.out.println(send.getBody());

    // Obtain the Authorization URL
    System.out.println("Fetching the Authorization URL...");
    Token requestToken = service.getRequestToken();

    String authorizationUrl = service.getAuthorizationUrl(requestToken);
    System.out.println("Got the Authorization URL!");
    System.out.println("Now go and authorize Scribe here:");

    //I do NOT want to have to do this. Is there any other way I can have this authorize without going to a web browser to do this?

    System.out.println(authorizationUrl);
    System.out.println("And paste the authorization code here");
    System.out.print(">>");
    Verifier verifier = new Verifier(in.nextLine());
    System.out.println();

    // Trade the Request Token and Verfier for the Access Token
    System.out.println("Trading the Request Token for an Access Token...");
    Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier);

    //****Breaks on the line above.****
    //I think it's because the orequest.send() returned a 100 error code
    //Note, EMPTY_TOKEN is declared as null, but I think that's ok. Verifier is not null.

    System.out.println("Got the Access Token!");
    System.out.println("(if your curious it looks like this: " + accessToken + " )");
    System.out.println();

وهنا الإخراج:

=== Vimeo's OAuth Workflow ===

1.0
<?xml version="1.0" encoding="utf-8"?>
<rsp generated_in="0.0033" stat="fail">
  <err code="100" expl="The API key passed was not valid" msg="Invalid API Key" />
</rsp>
Fetching the Authorization URL...
obtaining request token from http://vimeo.com/oauth/request_token
setting oauth_callback to oob
generating signature...
base string is: POST&http%3A%2F%2Fvimeo.com%2Foauth%2Frequest_token&oauth_callback%3Doob%26oauth_consumer_key%3DACONSUMERKEY%26oauth_nonce%3D2861480766%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1331941401%26oauth_version%3D1.0
signature is: 7H/C4F4rK0FYZ5oZGf76Rl8P8yQ=
appended additional OAuth parameters: { oauth_callback -> oob , oauth_signature -> 7H/C4F4rK0FYZ5oZGf76Rl8P8yQ= , oauth_version -> 1.0 , oauth_nonce -> 2861480766 , oauth_signature_method -> HMAC-SHA1 , oauth_consumer_key -> ACONSUMERKEY , oauth_timestamp -> 1331941401 }
using Http Header signature
sending request...
response status code: 200
response body: oauth_token=bf3da4ec799559c9f8b1f8bda2b8d6ee&oauth_token_secret=AOAUTHTOEKN SECRET&oauth_callback_confirmed=true
Got the Authorization URL!
Now go and authorize Scribe here:
http://vimeo.com/oauth/authorize?oauth_token=bf3da4ec799559c9f8b1f8bda2b8d6ee
And paste the authorization code here
>>unicorn-duqx0
Exception in thread "main" java.lang.NullPointerException

Trading the Request Token for an Access Token...
obtaining access token from http://vimeo.com/oauth/access_token
    at org.scribe.oauth.OAuth10aServiceImpl.getAccessToken(OAuth10aServiceImpl.java:75)
    at autouploadermodel.VimeoTest.main(VimeoTest.java:51)
Java Result: 1
BUILD SUCCESSFUL (total time: 27 seconds)

تحرير:وأضاف .تصحيح () إلى سيرفيسيبويلدر جديد () وتحديث الإخراج وفقا لذلك.

هل كانت مفيدة؟

المحلول

تغيير هذا الخط:

Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier);

ل:

Token accessToken = service.getAccessToken(requestToken, verifier);


تحرير

الجزء الرئيسي غير المصرح به هو لأن هذا الجزء من التعليمات البرمجية:

OAuthRequest orequest = new OAuthRequest(Verb.GET, "http://vimeo.com/api/rest/v2");
orequest.addQuerystringParameter("method", "vimeo.test.null");
Response send = orequest.send();
System.out.println(send.getBody());

أنت تحاول تقديم طلب الحصول على جذر واجهة برمجة التطبيقات (لست متأكدا حتى إذا كان هذا موردا صالحا) دون التوقيع عليه.بالطبع انها سوف تسفر عن خطأ غير مصرح به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top