यहाँ एक स्क्रिप्ट मैं एक समय पहले लिखा था कि कैसे geotags के साथ ट्वीट पोस्ट करने के लिए पता चलता है कि है। यह वेब क्लाइंट का उपयोग करता है।
http://www.ravichaganti.com/blog/?p=979
आसान संदर्भ के लिए यहाँ कोड पेस्ट करना।
Function ByPass-Proxy {
param ([string]$url)
$webClient.Proxy.IsBypassed($url)
}
Function Get-GeoCoordinates {
param ([String]$location)
$baseURL = "http://maps.google.com/maps/geo?q="
$apiKey = "Your API Key"
$url = $baseURL + $location + "&output=xml&sensor=false&key=" + $apiKey
$locCoords = (([xml]($WebClient.DownloadString($url))).kml.Response.Placemark.Point.coordinates)
return $locCoords
}
Function Send-Tweet {
param ([string]$Tweet,[string]$location)
$geoCoord = Get-GeoCoordinates $location
$long = $geoCoord.Split(",")[0]
$lat = $geoCoord.Split(",")[1]
$TwitURL = "http://twitter.com/statuses/update.xml"
$WebClient.Credentials = $TwitCredentials
#$str = [System.Text.Encoding]::UTF8.GetBytes("status=" + $Tweet + "&lat=" + $lat + "&long=" + $long)
$str = "status=" + $Tweet + "&lat=" + $lat + "&long=" + $long
[System.Net.ServicePointManager]::Expect100Continue = $false
$response = $WebClient.UploadString($TwitURL,$str)
$response
}
function Get-Credential {
## Grabbed this from http://poshcode.org/1480
[CmdletBinding(DefaultParameterSetName="Better")]
PARAM(
[Parameter(Position=1,Mandatory=$false)]
[Alias("Credential")]
[PSObject]$UserName=$null,
[Parameter(Position=2,Mandatory=$false)]
[string]$Title=$null,
[Parameter(Position=3,Mandatory=$false)]
[string]$Message=$null,
[Parameter(Position=4,Mandatory=$false)]
[string]$Domain=$null,
[Parameter(Mandatory=$false)]
[switch]$GenericCredentials,
[Parameter(Mandatory=$false)]
[switch]$Inline
)
PROCESS {
if($UserName -is [System.Management.Automation.PSCredential]) {
return $UserName
} elseif($UserName -ne $null) {
$UserName = $UserName.ToString()
}
if($Inline) {
if($Title) { Write-Host $Title }
if($Message) { Write-Host $Message }
if($Domain) {
if($UserName -and $UserName -notmatch "[@\\]") {
$UserName = "${Domain}\${UserName}"
}
}
if(!$UserName) {
$UserName = Read-Host "User"
if(($Domain -OR !$GenericCredentials) -and $UserName -notmatch "[@\\]") {
$UserName = "${Domain}\${UserName}"
}
}
return New-Object System.Management.Automation.PSCredential $UserName,$(Read-Host "Password for user $UserName" -AsSecureString)
}
if($GenericCredentials) { $Credential = "Generic" } else { $Credential = "Domain" }
## Now call the Host.UI method ... if they don't have one, we'll die, yay.
## BugBug? PowerShell.exe disregards the last parameter
$Host.UI.PromptForCredential($Title, $Message, $UserName, $Domain, $Credential,"Default")
}
}
$global:webClient = New-Object System.Net.WebClient
$global:TwitCredentials = Get-Credential -title "Twitter Credentials" -message "Please enter your Twitter username/password"
If (!(ByPass-Proxy "http://www.twitter.com")) {
$global:Webclient.proxy.Credentials = Get-Credential -title "Proxy Credentials" -message "Please enter username/password for Proxy authentication"
}