web-dev-qa-db-ja.com

SharePointをPHPに接続する方法

SharepointとPhpを統合する方法を知っている人はいますか? Sharepointに接続できるphpアプリを開発しようとしています。特に私は基本的にWebサイト開発者なので、すべてのWebサイトをSharepointに接続したいと思っています。したがって、すべてのWebサイトで機能するようにPHPアプリを作成したいと思います。可能かどうかはわかりませんが、試してみたいのですが、どうすればいいのかわかりません。

どんなアイデア/提案も歓迎します。

前もって感謝します。

7
samjhana joshi

これを試してください [〜#〜] api [〜#〜]

SharePointの場合

WSDLをダウンロードします。通常、この場所:<sharepoint.url> /subsite/_vti_bin/Lists.asmx?WSDL

APIをダウンロードします

必ず両方を保存してくださいSoapClientAuth.phpおよびSharePointAPI.php

PHPの場合

// 0: include api in your php script.
require_once('SharePointAPI.php');

// 1: connect to SharePoint
$sp = new SharePointAPI('<username>', '<password>', '<path_to_WSDL>');

// 2: read a list
$listContents = $sp->read('<list_name>'); 

// 3: now you have a 2-D array to work with in PHP
foreach($listContents as $item)
{
    var_dump($item);
}

このAPIを使用すると、リストのクエリ、更新、作成、削除、リストメタデータのクエリも実行できます。

8
NoodleFolk

私があなたの質問を正しく読んだ場合、あなたはPHPを使用してSharePointサイトと対話したいと思うでしょう。 SharePointのWebサービスを使用して、ほとんどの対話を行うことができます。たとえば、リストWebサービス(http:/// _ vti_bin/lists.asmx)を使用して、すべてのリストアイテムを読み取ることができます。 SharePointドキュメントライブラリにファイルをアップロードできます。私はそれを達成するために私がしたことの例を猛烈に探しましたが、私はそれを失いました。 Curlを使用してアップロードを行ったことを覚えています。

PHPを使用してSharePointデータにアクセスすることについて説明しているWebサイトは多数あります。簡単なグーグル検索で見つけたものを次に示します。

キャメロットと呼ばれるツールについての議論と同様にPHP ここ

1
Robbert

これをAPIで使用して、PHP WebアプリケーションをSharePointに接続し、データをPHPからSharePointに転送すると、100%機能しました。

使用方法

インストール

対話するSharePointリストのWSDLファイルをダウンロードします。これは通常、次の場所で取得できます:_sharepoint.url/subsite/_vti_bin/Lists.asmx?WSDL_

Composerを使用している場合は、thybag/php-sharepoint-lists-apiをcomposer.jsonに追加して、composerを実行します。

_    {
    "require": {
        "thybag/php-sharepoint-lists-api": "dev-master"
    }
    }_

composerを使用していない場合は、SharePoint APIファイルのコピーを手動でダウンロードして、プロジェクトに最上位の「SharePointAPI.php」クラスを含めることができます。

SharePointAPIオブジェクトの作成

PHP SharePoint Lists APIを使用するには、必要なリストへのアクセス許可を持つ有効なユーザー/サービスアカウントが必要です。

ほとんどのSharePointインストールでは、以下を使用してAPIの新しいインスタンスを作成できます。

_    use Thybag\SharePointAPI;
            $sp = new SharePointAPI('', '', '');_

インストールにNTLM認証が必要な場合は、代わりに次を使用できます。

_    use Thybag\SharePointAPI;
    $sp = new SharePointAPI('', '', '', 'NTLM');_

SharePointOnlineユーザーは以下を使用する必要があります。

_    use Thybag\SharePointAPI;
    $sp = new SharePointAPI('', '', '', 'SPONLINE');_

すべてのメソッドはデフォルトで配列を返します。 SetReturnTypeを使用して、結果を代わりにオブジェクトとして返すように指定できます。

リストからの読み取り

リストからすべてのアイテムを返すには、次のいずれかを使用します

    $sp->read('');
_or
_
    $sp->query('')->get();

リストから最初の10個のアイテムのみを返すには、次を使用します:

    $sp->read('', 10);

または

    $sp->query('')->limit(10)->get();

姓がsmithであるリストからすべてのアイテムを返すには、次を使用します:

    $sp->read('', NULL, array('surname'=>'smith'));

または

    $sp->query('')->where('surname', '=', 'smith')->get();

リストのクエリ

クエリメソッドは、読み取りメソッドを使用して簡単に定義できるように複雑なクエリを指定する必要がある場合に使用できます。クエリは、いくつかの(うまくいけば表現力のある)疑似SQLメソッドを使用して構築されます。

たとえば、ペットのリストをクエリして、使用できる5歳未満のすべての犬(年齢で並べ替え)を返したい場合。

_
    $sp->query('list of pets')->where('type','=','dog')->and_where('age','sort('age','ASC')->get();_

猫またはハムスターの最初の10匹のペットを入手したい場合は、次のものを使用できます。

    $sp->query('list of pets')->where('type','=','cat')->or_where('type','=','hamster')->limit(10)->get();

5つのアイテムを返す必要があるが、リストに含まれるすべてのフィールドを含める必要がある場合は、を使用できます。 (非表示フィールドを含めるには、all_fieldsにfalseを渡します)。

    $sp->query('list of pets')->all_fields()->get();

実行する特定の高度なクエリ用のCAMLのセットがある場合は、次を使用してクエリオブジェクトに渡すことができます。

    $sp->query('list of pets')->raw_where('Hello World')->limit(10)->get();

リストへの追加

リストに新しいアイテムを追加するには、「書き込み」、「追加」、または「挿入」のいずれかの方法を使用できます(すべて同じように機能します)。 forename、surname、age、phoneの列を持つリストに新しいレコードを作成すると、次のようになります。

    $sp->write('', array('forename'=>'Bob','surname' =>'Smith', 'age'=>40, 'phone'=>'(00000) 000000' ));

以下を使用して、複数の書き込み操作を一緒に実行することもできます。

    $sp->writeMultiple('', array(array('forename' => 'James'),array('forename' => 'Steve')));

行の編集

行を編集するには、そのIDが必要です。上記の行のIDが5であるとすると、次のようにしてボブの名前をジェームズに変更できます。

    $sp->update('','5', array('forename'=>'James'));/code>

_As with the write method you can also run multiple update operations together by using:_

    $sp->updateMultiple('', array(    array('ID'=>5,'job'=>'Intern'),array('ID'=>6,'job'=>'Intern'))); </ code>

UpdateMultipleを使用する場合、すべてのアイテムにIDが必要です。

行の削除

行を削除するには、IDとリスト名が必要です。 ID 5のJamesのレコードを削除するには、次を使用します。

    $sp->delete('', '5');

一度に複数のレコードを削除したい場合は、IDの配列を複数の削除メソッドに渡すこともできます

    $sp->deleteMultiple('', array('6','7','8'));

ヘルパーメソッド

PHP SharePoint APIには、特定の値が一部のSharePoint特殊データ型に対して正しい形式であることを確認しやすくするためのヘルパーメソッドがいくつか含まれています。

dateTime DateTimeメソッドには、テキストベースの日付を渡すことができます。

    $date = \Thybag\SharepointApi::dateTime("2012-12-21");

またはUNIXタイムスタンプ

    $date = \Thybag\SharepointApi::dateTime(time(), true);

トラブルシューティング

ラッパー「https」が見つかりません

このエラーが発生した場合は、通常、php_openssl(https URLをカールする必要があります)がWebサーバーで有効になっていないことを意味します。多くのローカルWebサーバー(XAMPPなど)では、php.iniファイルを開いて、php_openssl行のコメントを解除するだけです(つまり、その前の;を削除します)。

注:SharePoint Onlineを使用していてSSLエラーが発生している場合は、SharePointオンライン接続用にSSLv3からTLSに変更された最新バージョンをプルしてください。

この行をcomposer.jsonファイルに追加します

    thybag/php-sharepoint-lists-api:dev-develop

上記のSharePointAPIを使用してCRUD(作成/読み取り/更新/削除)操作を実行できます。

参照URLリンク: https://github.com/thybag/PHP-SharePoint-Lists-API

1
Yogi Ghorecha