在PowerShell中通過API檢索subreddit鏈接的好方法是什麼?如何通過PowerShell列出subreddit的熱鏈接?
1
A
回答
2
這是一種不依賴任何第三方庫的方法。即它是純粹的PowerShell。
讓我們假設你保持你的reddit的憑據,reddit的應用程序客戶端ID和Reddit應用程序客戶端祕密文件:
$username = Get-Content $env:APPDATA\reddit-username
$password = Get-Content $env:APPDATA\reddit-password
$app_client_id = Get-Content $env:APPDATA\reddit-app-client-id
$app_client_secret = Get-Content $env:APPDATA\reddit-app-client-secret
(約得到一個reddit的客戶ID信息,請參閱this page)
檢索一個訪問令牌:
$result_access_token = Invoke-RestMethod -Uri 'https://www.reddit.com/api/v1/access_token' `
-Method Post `
-Headers @{
Authorization = ('Basic {0}' -f (
[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(
"${app_client_id}:${app_client_secret}"))))
} `
-Body @{
grant_type = 'password'
username = $username
password = $password
}
讓我們從結果中提取令牌,並將其分配給一個變量:
$token = $result_access_token.access_token
現在,讓我們對/r/programming
當前熱鏈接:
$result_listing = Invoke-RestMethod -Uri 'https://oauth.reddit.com/r/programming/hot' -Headers @{ Authorization = "bearer $token" }
顯示的鏈接:
$result_listing.data.children | ForEach-Object data | Select-Object score, subreddit, title, url
輸出示例:
2
如果您將.json
放在URI的末尾,則Reddit可以通過JSON提供內容,PowerShell可以使用該內容。在/ R /編程熱門鏈接:
(irm https://www.reddit.com/r/programming/hot/.json).data.children.data | select score, subreddit, title, url
1
使用PSRAW
- 登錄到reddit的 例
- 登錄到reddit的
- 導航到https://ssl.reddit.com/prefs/apps
- 單擊創建應用程序或創建一個應用按鈕
- 輸入名稱(例如「(Reddit用戶名)的PSRAW應用程序」)
- 選擇腳本單選按鈕
- 輸入描述(例如, 「我的第一個PSRAW應用程序!「)
- 在約網址框中輸入
https://127.0.0.1
- 在重定向的URI框中輸入
https://127.0.0.1
- 點擊創建應用程序按鈕
然後定義你的reddit的應用程序,獲得令牌,並將其導出:
Install-Module -Name PSRAW -Scope CurrentUser
Import-Module PSRAW
$ClientCredential = Get-Credential
$UserCredential = Get-Credential
$RedirectUri = 'https://127.0.0.1'
$AppExportPath = 'C:\PSRAW\MyApp.xml'
$UserAgent = 'windows:markekraus-PSRAW:v0.0.0.1 (by /u/markekraus)'
$Scopes = 'read'
$Params = @{
Script = $True
Name = "markekraus's PSRAW App"
Description = 'My first PSRAW App!'
ClientCredential = $ClientCredential
UserCredential = $UserCredential
RedirectUri = $RedirectUri
UserAgent = $UserAgent
Scope = $Scopes
}
$RedditApp = New-RedditApplication @Params
$RedditApp | Export-RedditApplication -Path $AppExportPath
$TokenExportPath = 'C:\PSRAW\MyToken.xml'
$Token = $RedditApp | Request-RedditOAuthToken -Script
$Token | Export-RedditOAuthToken -Path $TokenExportPath
現在你可以使用Invoke-RedditRequest
進行身份驗證的API調用:
$Uri = 'https://oauth.reddit.com/r/programming/hot'
$result_listing = $Token | Invoke-RedditRequest -Uri $Uri
$result_listing.ContentObject.data.children.data |
Select-Object score, subreddit, title, url
首先創建應用程序,獲得令牌,並導出令牌後,這樣的事情可以被添加到您的個人資料顯示,當您的會話負載:
$TokenExportPath = 'C:\PSRAW\MyToken.xml'
$Uri = 'https://oauth.reddit.com/r/programming/hot'
$Token = Import-RedditOAuthToken -Path $TokenExportPath
$result_listing = $Token | Invoke-RedditRequest -Uri $Uri
$result_listing.ContentObject.data.children.data |
Select-Object score, subreddit, title, url
相關問題
- 1. 充分利用自身的文本鏈接PRAW版(Subreddit)對象的版(Subreddit)
- 2. 通過Powershell獲取UDP連接列表
- 3. 通過.htaccess防止熱鏈接的高效方法
- 4. 我如何通過PowerShell的
- 5. 通過鏈接
- 6. 通過鏈接
- 7. 如何隱藏點擊鏈接熱點?
- 8. 如何熱鏈接/嵌入Twitpic圖像?
- 9. 如何通過連接列
- 10. 如何通過突出顯示選定的鏈接?
- 11. PHP - 通過超鏈接刪除目錄中列出的文件
- 12. 沒有通過鏈接列表得到所需的輸出
- 13. 通過熱
- 14. 如何通過遞歸添加鏈接列表中的元素?
- 15. 通過硒webdriver彈出處理鏈接
- 16. 添加超鏈接到通過PowerShell生成的電子郵件
- 17. 如何通過單擊鏈接的值鏈接的值設置下拉列表值與鏈接的價值
- 18. 如何選擇通過鏈接引用
- 19. 如何通過單擊鏈接
- 20. 如何通過以g PARAMS:鏈接
- 21. 如何通過jquery激活鏈接?
- 22. 如何通過html顯示php鏈接
- 23. 如何通過一個鏈接
- 24. 如何通過單擊鏈接
- 25. 如何證據通過鏈接
- 26. 如何通過鏈接名稱
- 27. 如何通過單擊超鏈接
- 28. 如何通過cmake鏈接ffmpeg庫?
- 29. 如何通過單擊超鏈接