2017-11-03 11 views
1

交換に接続する方法2013 EWSで写真を取得するだけですか? 必要なライブラリ(API)と埋め込み方法(I「は、PHPで初心者をM)PHPを使って交換2013 EWSに接続する方法(写真を入手する)

ここで私が今持っているコードです:彼は私にログイン/パスワードを尋ねる

https://exchange.domen.local/ews/exchange.asmx/s/[email protected]&size=HR240x240 

。それは良い。しかし、スクリプトにログイン/パスワードを書き込む方法が必要です。ありがとう。

答えて

1

ここで私はカールを使用してPHPでこれを処理しました。それはカールの外に依存関係がなくても簡単です。

Exchange 2013サーバーに対してテストされています。直接ファイルに保存します。

$server = ''; // owa.whatever.com, etc. 
$user = ''; // username without domain info 
$password = ''; 
$email_to_get = ''; // Email to pull photo 
$fullurl = "https://$server/ews/Exchange.asmx/s/GetUserPhoto?email=$email_to_get&size=HR648x648"; //sizes defined at https://msdn.microsoft.com/en-us/library/jj194329(v=exchg.80).aspx 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $fullurl); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM | CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "$user:$password"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
$returned = curl_exec($ch); 

$fp = fopen("pic.jpg", 'w'); // Save picture locally to .jpg 
fwrite($fp, $returned); 
fclose($fp); 

header('Content-type: image/jpeg'); 
echo $returned; // Display the image on the page if desired 
+0

こんにちはグレッグ。素晴らしいスクリプトですが、私は質問があります - あなたのスクリプトはここで写真を開くか、または変数から写真を抽出する必要がありますか? $ server = "bagira.bam.loc"、$ user = "user"、$ password = "password"、$ email_to_get = "[email protected]"(初めに2つのセミコロンを追加した)しかし何も起こっていない(スクリプトには何のエラーもありません)スクリプトには何かがありますが、私は理解できません:)。 –

+1

ああ、私は私の情報を削除したときにいくつかのセミコロンを見落としました。私はポストでそれを修正します。 –

+1

Oleg、画像データは返された$で返されます - そのため、私はfwriteでファイルに書き込みます。あなたがprint_r($返された)をするならば。ウェブページ自体に行くとバイナリデータが表示されます(最初の数エントリではJPG用のJFIFが必要です)。 wはファイルを上書き/作成し、xはファイルを作成するだけなので、xの代わりにwを使うようにfopenを変更しました。 –

0

あなたの提供するコードは不完全です。 URLをトリガーするだけで、xmlストリームから画像を取得したいとは指定しません。

Microsoft HowTo hereを確認するのが最善の方法ですが、必要に応じて調整できる例があります。それができない場合は、PHP EWSライブラリをhereからチェックしてください。

+0

私が必要とする手がかり "xml stream"。私はXMLストリームとしてのewsについては知らなかった:)。ありがとう。後で解決方法を説明します。 –

+0

あなたは歓迎です:) – BastianW

関連する問題