Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Wiregate Plugin sendet Twitter Nachrichten

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - Wiregate Plugin sendet Twitter Nachrichten

    Hallo Leute,

    wuerde gern ein Plugin schreiben welches Status Updates via Twitter verschickt .

    Damit das einfacher geht wollte ich die Net::Twitter library mittels CPAN installieren. Irgendwie sagte CPAN jedoch dass der tar Befehl fehlgeschlagen ist und um nicht gleich aufzugeben, habe ich haendisch das tar file entpackt und wollte mittels

    Code:
    perl Build.PL
    die Library compilieren, leider hab ich dann gleich folgendes erhalten

    Code:
    Module::Build version 0.3601 required--this is only version 0.280801 at Build.PL line 5.
    BEGIN failed--compilation aborted at Build.PL line 5.

    Hat vielleicht schon jemand Twitter in einem Plugin verwendet? Ist es notwendig ein Perl Upgrade zu machen? bitte um Hilfe

    besten Dank

    Andy

    #2
    Versuch mal ein
    Code:
    apt-get install libmodule-build-perl
    und danach nochmal.

    Hier meckert er nur dass er das Build Modul nicht findet, dieses sollte aber im offiziellen Repository sein.

    libnet-twitter-perl gibts wohl erst ab Squeeze.

    EDIT:
    Ist natürlich Quatsch was ich grad geschrieben habe, er meckert ja nur über die Version.
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      ok, have versucht mittels CPAN das Build module up-zu-graden ...

      leider ohne Erfolg

      Code:
      CPAN: Module::Build loaded ok (v0.280801)
      
        CPAN.pm: Going to build L/LE/LEONT/Module-Build-0.4005.tar.gz
      
      Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
      Use of uninitialized value $_[0] in join or string at /usr/share/perl/5.10/File/Spec/Unix.pm line 37.
      Use of uninitialized value $_[0] in join or string at /usr/share/perl/5.10/File/Spec/Unix.pm line 37.
        LEONT/Module-Build-0.4005.tar.gz
        /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
      Running make test
        Make had some problems, won't test
      Running make install
        Make had some problems, won't install
      Failed during this command:
       LEONT/Module-Build-0.4005.tar.gz             : writemakefile NO '/usr/bin/perl Makefile.PL INSTALLDIRS=site' returned status -1
      hat jemand eine Idee woran es hier scheitert?

      Kommentar


        #4
        Es gab auch schon mit anderen Paketen in Verbindung mit CPAN Probleme, such mal hier im WG-Unterforum danach.

        lg

        Stefan

        Kommentar


          #5
          twittern mit dem Wiregate

          Hier ein kleines Update zu diesem Thread:


          CPAN scheint aufgrund Speicherhunger nicht unbedingt geeignet fuers Wiregate, deshalb habe ich cpanminus ausprobiert. Hiermit konnte ich dann auch das Perl Modul Net::Twitter installieren.

          es werden die OpenSSL headers gebraucht, deshalb vorab mittels

          Code:
          apt-get install libssl-dev
          installieren, dann mit CPANMinus

          Code:
          cpanm Net::SSLeay
          
          cpanm LWP::Protocol::https
          
          cpanm Net::Twitter
          die notwendigen Packages installieren. Hier ein unschoenes Proof of Concept Plugin, welches beim Oeffnen der Wohnungstuer eine Twitter Nachricht verschickt. Plugin ist weder schoen, komplett, noch 100% richtig...

          HTML-Code:
          # get twitter notification when door opens...
          
          $plugin_info{$plugname.'_cycle'} = 3600;
          
          
          ### KONFIGURATION ###
          my $wtuer_ga = '9/2/6';
          
          
          ### KONFIGURATION ENDE ###
          
          $plugin_subscribe{$wtuer_ga}{$plugname} = 1;
          
          #Aufruf ueber GA Event
          if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $wtuer_ga) {
          	my $val_in = knx_read($wtuer_ga,300,1);
          }
          
          use Net::Twitter;
          use LWP::Protocol::https;
          
          
          my $twitterconsumer = 'DEINEN CONSUMER CODE HIER';
          my $twitterconsumersecret = 'CONSUMER SECRET HIER';
          my $twitteraccesstoken = 'XXXX';
          my $twitteraccesstokensecret = 'XXXX';
          
          my $nt = Net::Twitter->new(
                  traits          => ['API::RESTv1_1', 'OAuth'],
                  consumer_key    => $twitterconsumer,
                  consumer_secret => $twitterconsumersecret,
                  ssl => 1,
          );
          
          if ($twitteraccesstoken && $twitteraccesstokensecret) {
                  $nt->access_token($twitteraccesstoken);
                  $nt->access_token_secret($twitteraccesstokensecret);
          }
          
          unless ( $nt->authorized ) {
                  print "Authorize this app at ", $nt->get_authorization_url, " and enter the PIN#\n";
          
                  my $pin = <>; # wait for input
                  chomp $pin;
          
                  my($access_token, $access_token_secret, $user_id, $screen_name) = $nt->request_access_token(verifier => $pin);
                  print 'Access token: '.$access_token."\r\n".'Access Token Secret: '.$access_token_secret."\r\n";
          
                  exit();
          
          }
          my $tweet = "ALARM: Apartment door open!!!". int(rand(1000));
          
          my $result = $nt->update({status => $tweet});
          
          
          
          return;
          Consumer Tokens etc muessen natuerlich richtig eingetragen werden, eine Anleitung dafuer findet ihr im Netz.

          Simple Tweeting from Perl using Net::Twitter | Carl Eisenstein's Blog


          der Thread war zwar nicht besonders populaer, aber dies ist eine gratis Moeglichkeit Nachrichten aufs iPhone zu bringen (am Besten fuer den

          Kommentar


            #6
            vielleicht kann ein Admin den Titel ändern auf:


            Wiregate Plugin sendet Twitter Nachrichten

            Kommentar


              #7
              Gerne doch. Done.

              Kommentar


                #8
                Hallo zusammen,

                daß das Wiregate jetzt twittern kann ist ja genial!!!

                Ich habe mich mal mit einem Plugin versucht und bin ganz am Anfang gescheitert...

                Zusätzlich zu der Anleitung musste ich noch CPANMINUS installieren:
                Code:
                curl -L [URL="http://cpanmin.us/"][U][COLOR=#0066cc]http://cpanmin.us[/COLOR][/U][/URL] | perl - --sudo App::cpanminus
                Nun bekomme ich aber schon bei diesem Aufruf eine Fehlermeldung:
                Code:
                use Net::Twitter;
                Can't locate Net/Twitter.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 62) line 3. BEGIN failed--compilation aborted at (eval 62) line 3.



                Habt ihr eine Idee?

                Danke
                Sascha

                Kommentar


                  #9
                  Hast du Net::Twitter installiert?

                  sollte mit folgendem Befehl gehen:


                  Code:
                  cpanm Net::Twitter
                  Gruß

                  Andreas

                  Kommentar


                    #10
                    Zitat von AjejeBraso Beitrag anzeigen
                    Hast du Net::Twitter installiert?
                    Klar habe ich gemacht. auch die anderen Module, die oben aufgelistet sind.

                    Gruß
                    Sascha

                    Kommentar


                      #11
                      Zitat von haegar80 Beitrag anzeigen
                      daß das Wiregate jetzt twittern kann ist ja genial!!!
                      Aus ehrlichem Interesse, für was nutzt ihr das? Ich will doch nicht, dass die ganze Welt weiß, das gerade jemand an der Tür geklingelt hat.... oder noch schlimmer, dass das Haus gerade im Abwesenheits- oder Urlaubsmodus ist. Sowas schicke ich wenn dann per Prowl/Email/whatever direkt an mein iPhone.

                      Könnt ihr da bitte meinen Horizont erweitern
                      Mit freundlichen Grüßen
                      Niko Will

                      Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                      - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                      Kommentar


                        #12
                        und auch darauf geachtet, daß alles korrekt installiert wurde? ... bei mir hatte ich einige male mit --force installieren müssen, damit es auch mit all den Abhängigkeiten erfolgreich durchgelaufen ist...

                        sorry sonst hab ich jetzt mal keinen Plan woran es bei dir scheitert...

                        ...naja Sicherheitsrelevante Sachen würd ich auch nicht posten!
                        In erster Linie gings mir mal um die Machbarkeit und um einfach Messages auf mein iPhone zu kriegen ohne für eine App bezahlen zu müssen, zudem ist es auch angenehm, daß man online eine Art History hat...

                        Kommentar


                          #13
                          Zitat von 2ndsky Beitrag anzeigen
                          Ich will doch nicht, dass die ganze Welt weiß, das gerade jemand an der Tür geklingelt hat.... oder noch schlimmer, dass das Haus gerade im Abwesenheits- oder Urlaubsmodus ist.
                          Richtig sicherheitsrelevante Infos gehören dort nicht hin. Zusätzlich kannst du den Twitter Account schützen, so daß nur Freunde mitlesen können. Also die "Bewohner".

                          Kommentar


                            #14
                            Hallo zusammen,

                            der Fehler hat sich nach ein paar Tagen von alleine in Luft aufgelöst:
                            Zitat von haegar80 Beitrag anzeigen
                            Nun bekomme ich aber schon bei diesem Aufruf eine Fehlermeldung:
                            Code:
                            use Net::Twitter;
                            Can't locate Net/Twitter.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 62) line 3. BEGIN failed--compilation aborted at (eval 62) line 3.
                            Jetzt habe ich aber die nächste Herausforderung:
                            Ich habe mich wie beschrieben hier https://dev.twitter.com/apps registriert und habe mir
                            - Consumer key
                            - Consumer secret
                            - Access token
                            - Access token secret
                            generiert.

                            Dann bekomme ich nach folgendem Code das Ergebnis:
                            Code:
                            my $nt = Net::Twitter->new(
                            			traits   => [qw/API::RESTv1_1/],
                            			consumer_key        => $TwitterConsumerKey,
                            			consumer_secret     => $TwitterConsumerSecret,
                            			access_token        => $TwitterAccessToken,
                            			access_token_secret => $TwitterAccessTokenSecret,
                            		);
                            
                            my $result = $nt->update("Ich kann twittern!!!");
                            Invalid or expired token at (eval 64415) line 23


                            Hat das Plugin schon jemand am laufen?
                            Was kann das für Ursachen haben?

                            Danke + Gruß
                            Sascha

                            Kommentar


                              #15
                              Zitat von haegar80 Beitrag anzeigen
                              Richtig sicherheitsrelevante Infos gehören dort nicht hin. Zusätzlich kannst du den Twitter Account schützen, so daß nur Freunde mitlesen können. Also die "Bewohner".
                              d.h. du hast in diesem Sinne mehrere Twitter-Accounts? einen fürs "Haus" und dann für jeden Bewohner einen?

                              Kommentar

                              Lädt...
                              X