2015-07-14 14 views
15

Ben bu yüzden ben /api/submit aramaya çalışıyorumBaşarısız aramaya reddit en/API/

yardımcı olabilir stackoverflow de size iyi millet umut ediyorum reddit/r/redditdev üzerinde herhangi bir yardım alamadım gönderin.

  1. Kullanıcıyı başarıyla kaydedebilir ve taşıyıcı/erişim simgesini alabilirim./Needs_captcha gerçek döndüğünde
  2. , başarıyla/çağırabilir başarıyla/API/needs_captcha
  3. çağırabilir (Bunun için pasaport reddit düğüm modülü kullanmak) API/new_captcha Ben kullanıcıya Captcha resim görüntüleyebilir
  4. Şimdi ben çok

    var options = { 
        url: 'https://oauth.reddit.com/api/submit', 
        method: 'POST', 
        headers: { 
         'Authorization': 'bearer '+usertoken 
        , 'user-agent': 'node.js' 
        }, 
        json: data 
    } 
    request(options, function(error, response, body) ... 
    

benim 'veri' örneği gibi nodejs' isteği modülünü kullanarak gönderim aramaya çalıştığımda değişken şuna benzer:

{ api_type: 'json', 
    kind: 'self', 
    sr: 'test', 
    title: 'more test', 
    text: 'hello world', 
    iden: 'o6NsDh4IMCDb2To2DeUXJAgEPkB4O7uS', 
    captcha: 'WZRTBL' } 

Ama bu geri almak:

{ 
    "jquery":[ 
    [0, 1, "call", ["body"]], 
    [1, 2, "attr", "find"], 
    [2, 3, "call", [".status"]], 
    [3, 4, "attr", "hide"], 
    [4, 5, "call", []], 
    [5, 6, "attr", "html"], 
    [6, 7, "call", [""]], 
    [7, 8, "attr", "end"], 
    [8, 9, "call", []], 
    [1, 10, "attr", "captcha"], 
    [10, 11, "call", ["1oWOOhcicpcpdwjENw5KrR2xHRl7J0aS"]], 
    [1, 12, "attr", "find"], 
    [12, 13, "call", [".error.BAD_CAPTCHA.field-captcha"]], 
    [13, 14, "attr", "show"], 
    [14, 15, "call", []], 
    [15, 16, "attr", "text"], 
    [16, 17, "call", ["care to try these again?"]], 
    [17, 18, "attr", "end"], 
    [18, 19, "call", []] 
    ] 
} 

Ayrıca, farklı bir kullanıcı, yeterli karma noktaları vardır ve captcha'yı gerektirmeyen biri olarak bu çalışan çalıştı. Ben yayınlanmıştır sonra

, ben başarıyı göstermek için görünen bu yanıtı aldık:

{ 
    "jquery":[ 
    [0, 1, "call", ["body"]], 
    [1, 2, "attr", "find"], 
    [2, 3, "call", [".status"]], 
    [3, 4, "attr", "hide"], 
    [4, 5, "call", []], 
    [5, 6, "attr", "html"], 
    [6, 7, "call", [""]], 
    [7, 8, "attr", "end"], 
    [8, 9, "call", []] 
    ] 
} 

Ama/r/test subreddit benim yayınlanmıştır mesajı bulamıyorum. Yanlış tamamen şeyler yapıyor olmalı

...

+0

[buradan] (https://www.reddit.com/dev/api#POST_api_submit) bu son nokta için belgelerdir. –

+1

Eğer 'extension' 'json' olarak ayarlanmışsanız, farklı görünüyor mu? –

+0

Ayrıca, [burada] (https://www.reddit.com/r/redditdev/comments/3d36jl/getting_errorbad_captchafieldcaptcha_on_apisubmit/)/r/redditdev iş parçacığıdır. –

cevap

6

ilişkin farklı belgeler geçmekte sonra/API/göndermek, sana "veri" sizin numunesinin alanını uh kaçırmış olduğunu keşfettiler. uh Eksik söylediklerim sizin gibi burada (göz altında belgelerine)

ilgili daha fazla belgelerine bakmak hatalara gerektirir:

https://github.com/reddit/reddit/wiki/API:-submit http://www.reddit.com/dev/api

+3

Doküman ayrıca, yaptığım OAuth ile giriş yaparken "uh" nin gerekli olmadığını da söylüyor. Ayrıca, hata iletisinde "bunu yapmak için lütfen giriş yap" ifadesini içermiyor yani aynı hata – kane

+0

değil, sorun hakkında daha fazla bilgi bulmaya çalışacağım. – juanmajmjr

0

daha açıklayıcı bir şekilde User-Agent değiştirmeyi deneyin. Buradaki kurallara bakınız: https://github.com/reddit/reddit/wiki/API. Kullanıcıların sadece node.js gibi bir genel kullanıcı aracı dizesi kullanarak sorunları olduğunu duydum.

Hala sorun yaşıyorsanız, Apigee konsolu (https://apigee.com/console/reddit), reddit API'sı ile ilgili sorunları giderme konusunda bana yardımcı oldu. Uygulamanızda değişiklik yapmaktan daha hızlı olursa, Kullanıcı Aracısı üstbilginizi ve Yetkilendirme belirtecini ve konsol aracılığıyla farklı parametrelerle karışıklık ekleyin.

0

Benzer bir sorunla karşılaştım ve düzeltme (ikinci hatayız) JSON olarak değil URI'da bir sorgu olarak göndermekti. Gerektiğinde

/api/submit?api_type=json&kind=self&sr=test&title=more%20test&text=hello%20world 

tüm diğer alanları ekleyin.

Kullandığınız 'url', 'method' ve 'headers'leri saklayın. daha sonra bir json şöyle dönmelidir

: Referans olarak

"json": { 
    "data": { 
     "id": "12abcd", 
     "name": "t3_12abcd", 
     "url": "https://www.reddit.com/r/test/comments/12abcd/more_test/" 
    }, 
    "errors": [] 
} 
İlgili konular