2017-12-16 7 views
-1

さて、うまくいけば解決策があります。誰かが私のウェブサイトにアクセスしたときに私のフィリップスフエ球根が点滅するのを探しています。私はHue APIを使ってツールを作りましたが、デバッグページでそれを動作させることはできますが、私は自分のサイトにそれを注入するコードが必要です。Phillips Hueとウェブサイトとの統合

JSコードを実行してオフにするHTMLのチャンクを探していると思いますか?私は私の橋のIPとユーザー名とライトとそのすべてを知っていますが、私はそれを働かせることはできません。以下は、私は誰かが私のメインページをロードするときのコードは、その後オフに光をオンにするように私のサイトのヘッダーやフッターにこのコードを挿入するために探しています

<script type="text/javascript" language="javascript"> 
function send() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.open("PUT”, “URL AND ID FOR BRIDGE”, true); 
    xhttp.setRequestHeader("Content-type", "application/json"); 
    xhttp.send(); 
    var response = JSON.parse(xhttp.responseText); 
} 
</script> 

...私がこれまで持っているものです。他のユーザーとのやりとりや背景に隠されたものはありません。私はそれが私のサイトにいくつかの現実のネクタイを持っていることを理解することができればそれがクールだと思った。

ありがとうございます!

+1

**あなたのウェブサイトに**このようなものを公開すべきではありません。 PHP、Node.js、Pythonのようなものがあなたのサーバーにありますか?その場合、ユーザーがあなたのウェブサイトにアクセスするたびにリクエストされる「偽の」イメージアセットを作成することができます。この「偽の」画像要求は、あなたのスマート・バルブのトグルをトリガすることができます。 – Siggy

+0

私はそれを試みましたが、それは修正されていないようです。私はあなたが正しいと思うし、それはコードのそのセクションのための適切な場所かもしれないが、私は他のものも欠けているように感じる。ありがとう! –

+0

Siggy SquareSpaceを使用しているため、サーバーにアクセスできません。私はPHPについても何も知らない。 –

答えて

0

最も簡単な方法はIFTTTを使用することです。 https://ifttt.com マイアプレットWebhooksを使用して、Webサイトをあなたの色相ライトに接続します。

IFTTTを呼び出すには、PHPとcURLを使用します。あなたは技術的にJS GET要求を真っ直ぐにすることができますが、あなたの鍵をインターネット全体に渡すことになります。それはベスト・アイデアではありません。また、サーバーでcURLが有効になっていることを確認する必要があります。これを行うには、PHPファイルを作成し、次のコードを追加し、あなたがここに見つけることができるIFTTTで生成した鍵、と{{キー}}を置き換えるために

https://ifttt.com/services/maker_webhooks/settings

<?php 
    header('Access-Control-Allow-Origin: https://maker.ifttt.com'); 

    if(!isset($_GET['triggerLight'])){ 
     die('No URL set'); 
    } 

    $triggerLight = $_GET['triggerLight']; 

    $url = 'https://maker.ifttt.com/trigger/' . $triggerLight . '/with/key/{{ACCESS_KEY_FROM_IFTTT}}'; 

    echo($url); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    $output = curl_exec($ch); 
    echo $output; 
    curl_close($ch); 

?> 

お知らせアクセス制御ヘッダーこれは、クロスサイトドメインについて心配する必要がないようにするためです。 (このPHPファイルはいくつかのGoogle検索で一緒に飾られているので、おそらく改善される可能性があります)

jQueryを使用して、作成したばかりのPHPファイルに対してajax GETリクエストを行います。あなたが望むならば、バニラJSを自由に使用してください。

$.ajax({ 
    type: 'GET', 
    url: "PATH_TO/iftt.php?triggerLight={{WEBHOOK_MAKER_EVENT_NAME}}" 
}); 

あなたのホームページがロードされているときにこれを実行することができます。あなたは何をしたいのですか?あなたのサイトへのトラフィックの量に応じて、ある時点でレート制限がある可能性があります。 IFTTTには約1〜2秒の遅延がありますが、HUE APIを経由するよりも簡単です。主にリモートAPIにアクセスするためのフォームを記入する必要があるためです。

ユーザーがあなたのサイトにアクセスするたびに点滅する光が本当に迷惑になるかもしれないので、あなたが望むものに注意したいと思っています。私は、私が構築したイベントトラッキング機能のために、落ち着きのあるろうそく炎の色相を選んだ。私はまた、光をオン/オフしないように選択しました。

最後に、上記のように、このコードで私たち全員を台無しにしないでください。 :)

関連する問題