12 votos

¿Qué ganchos existen en el Centro de Notificaciones / twitter para que yo pueda tweet mediante programación?

Estoy buscando específicamente para el diseño de una acción personalizada para la barra de inicio para que yo pueda iniciar un tweet de esa utilidad. Desde el Centro de Notificaciones tiene un "Click to tweet" botón, me preguntaba si el Centro de Notificaciones ha ganchos que me permitiría guión de esta sin esperar a que el desarrollador del programa agregar una función para realizar esta acción.

9voto

jtbandes Puntos 8260

Las aplicaciones pueden enganchar en las opciones de compartir con el nuevo NSSharingService de la API. Esto suena como personalizados de la barra de inicio de las acciones se puede hacer con cualquier UNIX archivo ejecutable, por lo que probablemente podría escribir una pequeña herramienta de línea de comandos (o los que usted puede necesitar para construir una aplicación real, tendrás que probarlo) que activa esta API (usando NSSharingServiceNamePostOnTwitter), y que debe mostrar el tweet de diálogo.

Actualización: para iniciar un tweet de AppleScript, puede hacer lo siguiente:

tell application "System Events"
    tell process "Notification Center"
        -- activate notification center
        if (count of UI elements) is 1 then click first menu bar's first menu bar item
        -- click the tweet button
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "Window"
    end tell
end tell

Además, puede activar la opción "Mostrar Alertas y Banners" / modo "no molestar":

tell application "System Events"
    tell process "Notification Center"
        key down option
        click first menu bar's first menu bar item
        key up option
    end tell
end tell

(Todo esto es muy específico para el diseño actual de la ventana de Centro de Notificaciones y es probable que romper con el futuro de las actualizaciones de OS X -, pero probablemente habrá soluciones fáciles.)

3voto

mtnygard Puntos 141

Ninguno, que yo sepa (y de hecho creo que tener una cuenta en Twitter/Facebook post rápido zona interior de las notificaciones de la zona es realmente tonto (debe ser un widget de verdad), y me han desactivado), pero usted puede utilizar la línea de comandos para enviar una lectura de los tweets, como se menciona en esta página web, a continuación extractos:


Para mostrar una lista de tweets (reemplazar osxdaily con un nombre de usuario de twitter de su elección):

curl -s http://twitter.com/osxdaily | grep '' | cut -d">" -f2 | cut -d"<" -f1

Para actualizar tu estado en twitter:

curl -u your_user:your_password -d status='This is My update' https://twitter.com/statuses/update.xml

3voto

TraFoO Puntos 11

Teniendo todo esto un paso más allá y poner juntos lo que hemos aprendido hasta ahora, he aquí una totalmente programática tweet:

tell application "System Events"
    tell process "Notification Center"
        click menu bar item 1 of menu bar 1
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
        keystroke "Content of the tweet"
        keystroke "D" using {command down, shift down}
    end tell
end tell

Por supuesto, esta es frágil, pero por ahora, funciona. Me encantaría encontrar un verdadero gancho, pero la interfaz de usuario de secuencias de comandos es una solución.

3voto

user26028 Puntos 16

Brillante comando shift D.

Añadiendo:

display dialog "Tweet?" default answer "" buttons {"OK"} default button 1
set mytweet to text returned of result

tell application "System Events"
    tell process "Notification Center"
        click menu bar item 1 of menu bar 1
        click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window "window"
        keystroke mytweet
        keystroke "D" using {command down, shift down}
        keystroke space
    end tell
end tell

1voto

Escribí otro script que corrige algunos problemas en la secuencia de comandos publicado por Ewwis:

  • No había manera de cerrar el cuadro de diálogo en el inicio.
  • La segunda acción de clic no funciona si el Centro de Notificaciones no había sido demostrado después de la última sesión.
  • La secuencia de comandos no funcionan cuando hay un retraso antes de que la vista para redactar un tweet fue mostrado. Si ya contenía algunas de texto, no se había aclarado.
  • La pulsación de tecla comando sólo funciona para la inserción de caracteres que se pueden escribir con el método de entrada actual.
  • El Centro de Notificaciones de la barra lateral no estaba cerrado al final.

No funciona cuando el Centro de Notificaciones de la barra lateral está abierto, aunque.

set answer to text returned of (display dialog "" default answer "")
try
    set old to the clipboard as record
end try
try
    set text item delimiters to linefeed
    set the clipboard to paragraphs of answer as text
    tell application "System Events"
        tell process "Notification Center"
            click menu bar item 1 of menu bar 1
            try
                windows
            on error
                click menu bar item 1 of menu bar 1
                click menu bar item 1 of menu bar 1
            end try
            click button 1 of UI element 1 of row 2 of table 1 of scroll area 1 of window 1
            delay 0.1
            keystroke "av" using command down
            keystroke "d" using {shift down, command down}
            repeat 100 times
                try
                    delay 0.1
                    click menu bar item 1 of menu bar 1
                    exit repeat
                end try
            end repeat
        end tell
    end tell
end try
try
    set the clipboard to old
end try

Sería más fácil usar la API.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X